利用GIT LAB做CICD自動部屬
.gitlab-ci.yml 說明
下表中表示 git會交給runner做三件事:
build → deploy
stages:- build- deploy
- build
docker-build-dev: #操作名稱 stage: build #對應到上面的階段 image: docker:latest #因使用docker做自動部屬 所以指定docker image tags: - pathOnly #指定由哪個RUNNER做操作 services: - docker:dindscript: #啟動docker 進入環境後須執行的command - docker login -u $REPOSITORY_ACCOUNT -p $REPOSITORY_PASSWORD $REPOSITORY_URL - docker build -t $IMAGE_NAME_DEV . - docker push $IMAGE_NAME_DEV only: # 只有在某個分支 被更新時啟動 - develop
- deploy
deploy_dev:stage: deployimage: kroniak/ssh-clienttags:- pathOnlybefore_script:- mkdir -p ~/.ssh- chmod 700 ~/.ssh- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config- echo "$DEV_SSH_PRIVATE_KEY" > ~/.ssh/id_rsa- chmod 600 ~/.ssh/id_rsascript:- ssh $DEV_SSH_HOST "docker rm -f $DEV_PROJECT_NAME" || true- ssh $DEV_SSH_HOST "docker login -u $REPOSITORY_ACCOUNT -p $REPOSITORY_PASSWORD $REPOSITORY_URL"- ssh $DEV_SSH_HOST "docker pull $IMAGE_NAME_DEV"- ssh $DEV_SSH_HOST "docker run ********"only:- develop