[devops] cicd設定 (gitlab-ci.yml說明)

Allen
NoteOcean
Published in
Sep 1, 2021

利用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

--

--