進階案例
build docker images & push them to remote repo
#38 的案例
image build 完直接在本機上進行部署
此情況適用於 runner 本身就在 production server machine 上的情況
如果 build image 後,想要先將 image 存在某個站點
等待某一台主機執行 deploy
請參考以下範例
首先需自行建置一套 Private Docker Repo
參考 https://philipzheng.gitbook.io/docker_practice/repository/local_repo
Pipeline 這一端
執行 docker build 完成後
執行 docker push 推送到指定的 remote repo
docker push 會將讀取 image 的三段式 tag name 的第一段
ex: remote_repo:5000/project_name/image_name:ver.123 將會把指定的 image 推送到 https://remote_repo:5000/ 上
所以首先需要將 image 命名為三段式命名方式
此處我們可以搭配 Gitlab Variable 設定部分參數,方便隨時調整
(可以至 Settings > CI/CD > Variables 進行設定)
$DOCKERREPO_HOST=10.1.1.1:5000
$IMAGE_NAME=tgbot/bot
$CI_COMMIT_TAG=1.0.1
.gitlab-ci.yml example
publish:
stage: build
cache: {}
tags:
- deploy
image: docker
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
IMAGE_FULLNAME: "$DOCKERREPO_HOST/$IMAGE_NAME:$CI_COMMIT_TAG"
services:
- docker:dind
script:
- echo "building image - $IMAGE_FULLNAME"
- docker build -t $IMAGE_FULLNAME .
- echo "pushing image - $IMAGE_FULLNAME"
- docker push $IMAGE_FULLNAME
after_script:
- docker rmi $IMAGE_FULLNAME
- docker images | grep "$IMAGE_NAME"
only:
- tags
進階案例
build docker images & push them to remote repo
#38 的案例
image build 完直接在本機上進行部署
此情況適用於 runner 本身就在 production server machine 上的情況
如果 build image 後,想要先將 image 存在某個站點
等待某一台主機執行 deploy
請參考以下範例
首先需自行建置一套 Private Docker Repo
參考 https://philipzheng.gitbook.io/docker_practice/repository/local_repo
Pipeline 這一端
執行
docker build完成後執行
docker push推送到指定的 remote repodocker push會將讀取 image 的三段式 tag name 的第一段ex:
remote_repo:5000/project_name/image_name:ver.123將會把指定的 image 推送到 https://remote_repo:5000/ 上所以首先需要將 image 命名為三段式命名方式
此處我們可以搭配 Gitlab Variable 設定部分參數,方便隨時調整
(可以至 Settings > CI/CD > Variables 進行設定)
.gitlab-ci.ymlexample