要開始撰寫腳本咯 ~ 根據開篇的規劃要以 Docker Image 的形式進行建置、發佈和佈署,所以首先要先使用腳本利用 dind 的方式來建立映像檔。製作成映像檔後就可以根據需求來決定,今天的這個檔案是要拿去放置到要佈署的機器,或是拿去放到發佈的地方。
docker:dind
,這時腳本上會有以下設定。services:
- docker:dind
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
docker
指令,所以 image 一般會設定為 docker:stable
。不過作者推薦也可以使用 google/cloud-sdk:latest
同樣擁有 docker
指令外還擁有 kubectl
、gcloud
...等好用的指令image: google/cloud-sdk:latest
devops-runer
標籤build:
script:
- docker build --pull -t devops-lab-image .
tags:
- devops-runner
image: google/cloud-sdk:latest
services:
- docker:dind
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
build:
script:
- docker build --pull -t devops-lab-image .
tags:
- devops-runner
dev
branch 中的 .gitlab-ci.yml
並推送至伺服器上before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
build:
script:
- docker build -t $IMAGE_TAG .
- docker push $IMAGE_TAG
image: google/cloud-sdk:latest
services:
- docker:dind
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
build:
script:
- docker build -t $IMAGE_TAG .
- docker push $IMAGE_TAG
tags:
- devops-runner
軟體包
> 容器登入表
中看到已經被建置好的映像檔