大家好上次我們教了 Gitlab CI/CD 的 extends 如何使用,今天我們要來實際做一個真正佈署上線我們的服務,我們會分成兩個章節,第一部分先教大家怎麼寫 Docker Compose 佈署計畫書,第二部分教大家撰寫 CI/CD 自動化佈署流程計劃書
Docker Compose 是 Docker 公司發明的一個容器管理技術,他可以一次管理很多個容器,並且只要一個指令就可以開啟全部容器與服務,這樣子可以讓上線速度更加快速,建立乾淨環境,而且可以管理讓上線速度上加快速
有很多人會想說為何不用 Docker 佈署就好,還要用到 Docker Compose,那是因為 Docker 在更新容器的時候,並無法做到該管理多少容器服務,而且在更新容器時很容易發生錯誤,像是突然多起一個同樣 port 的服務,導致原有的服務失敗,使用 Docker Compose 不但可以管理好我們該起多少服務,而且不會多起沒必要的服務
version: "3"
services:
dotnetcorewebapiciandcdcourse:
restart: always
image: timmmmmm/dotnetcorewebapiciandcdcourse
environment:
ASPNETCORE_URLS: http://+:5000
ASPNETCORE_ENVIRONMENT: Production
DOTNET_USE_POLLING_FILE_WATCHER: true
ports:
- ${SERVER_PORT}:5000
version: 這個意思是指我們使用的 Docker Compose 語法是使用多少版本
services: 這個是指我要起那些服務,我們要管理服務的地方就是寫在這底下
dotnetcorewebapiciandcdcourse: 這個是我們要起的服務名子
container_name: 這個是我們起的服務容器名稱
restart: 這個是當服務突然當掉的時候,在什麼時機點重起容器,這裡是任意重起
image: 這個是指我們要使用的 image,也就是我們上次包好的 Docker Image
environment: 這個是指我們會有一些環境變數這在裡面這定環境變數
ports: 這個是指我們對內與對外開起的 port 號是多少,左邊是對外 port,右邊是對內 port