iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 4
0

部署到不同的主機 最常見的就是環境常常會有些差異而導致某些程式無法使用

所以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 但還是希望有空把它寫完^^


上一篇
初探 gitlab 部署
下一篇
Gitlab部署 docker
系列文
Next + Ant + Apollo Graphql + Mongo 後台系統 製作與發佈10

尚未有邦友留言

立即登入留言