部署到不同的主機 最常見的就是環境常常會有些差異而導致某些程式無法使用
所以Docker化是目前部署時都會優先採用的方案之一
因為部署會用到前後端加上資料庫,會有很多docker service 所以會採用 docker-compose 來整合在同一個scope 讓彼此可以連接到
因為跑gitlab CI/CD 所以要再參考一下 gitlab的 register 可子取得部署的image名稱 在後面章節會再補充
這個章節先解釋 dokcer-comopse
這邊可以多個 services 然後每個 server都會有一個名稱例如下面的 client server mongo 三個
把這個寫成一個 docker-compose.yml 檔案 再配合 register 的 imageName 這樣彼此就可以透過localhost:port 連到彼此
depends_on 則是啟動順序 例如下面的server 需要 client mongo 完成後才會執行 這樣就可以避免有些因為啟動順序造成的問題
version: '3'
services:
client:
image: registry.gitlab.com/xxxxx/erp-system/client
container_name: client
command: npm run start
ports:
- '80:80'
server:
image: registry.gitlab.com/xxxxx/erp-system/server
container_name: server
command: npm run start
ports:
- '8080:8080'
depends_on:
- client
- mongo
mongo:
image: mongo
container_name: mongo
volumes:
- ~/data/db:/data/db
ports:
- 27017:27017
總結
docker-compose 是一個小型的方案 快速好用 配合 register 就可以完成一個簡單的CI/CD部署 後面章節在介紹
gitlab-runner 與 register 更詳細的介紹 因為最近在趕案子,鐵人賽GG 但還是希望有空把它寫完^^