Gitlab CI/CD 教學(二)
接續上次Gitlab CI/CD 教學(一),今天要跟大家說說要如透過 Gitlab 的 CI/CD 將程式部署到 AWS Server 上。
Quick Start
在正式開始之前,會需要大家先去申請AWS Server,並先建立一個 EC Server,有關 AWS 相關文章,後續有空再補上給大家。
ssh 登入 AWS Server 主機
- 透過 ssh 登入 AWS Server 主機
1 | ssh ec2-user@52.221.216.202 -i ./cpay.pem |

安裝 Docker on Amazon EC2
- 更新 yum
1 | sudo yum update -y |

- 這邊是使用 Amazon Linux 2,指令如下
1 | sudo amazon-linux-extras install docker |

- 啟動 Docker 服務
1 | sudo service docker start |

- 將 ec2-user 加入可執行 Docker 的 group
1 | sudo usermod -a -G docker ec2-user |

- 登出後重新登入,驗證功能
1 | docker ps |

設定 Gitlab
- Gitlab 專案左側的導覽列進入
Setting->CI/CD->Environment variables。將 ssh 的 private key 填入。

- 修改
.gitlab-ci.yml
AWS_SSH_KEY 為上面設定的參數名稱。
1 | deploy: |
完整 script 請參考下方。
- 驗證
確認 pipeline 執行成功
登入 AWS Server 確認
問題:當重複布版的時候,會出現 container 已經存在
需加入清除 Docker container 與 images 的相關指令在腳本中1
2docker ps --filter "name=cpayCoreService" -a -q | xargs --no-run-if-empty docker rm -f
docker images -q -f dangling=true | xargs --no-run-if-empty docker rmi
完整範例請參考下方。
補充
大家可以參考之前的文章Telegram Bot設定教學,試著在部署前後都進行通知,讓整個 CI/CD 機制更加完善。
Reference
To install Docker on an Amazon EC2 instance
Donate
謝謝您的支持與鼓勵