在生產環境中使用 Compose
目錄
在開發環境中使用 Compose 定義應用程式後,您可以使用此定義在不同的環境(例如 CI、登臺和生產)中執行應用程式。
部署應用程式的最簡單方法是在一臺伺服器上執行它,這與執行開發環境的方式類似。如果您想擴充套件應用程式,可以在 Swarm 叢集上執行 Compose 應用程式。
修改您的 Compose 檔案以適應生產環境
您可能需要更改應用程式配置以使其準備好用於生產環境。這些更改可能包括
- 刪除任何應用程式程式碼的卷繫結,以便程式碼保留在容器內,並且無法從外部更改
- 繫結到主機上的不同埠
- 以不同的方式設定環境變數,例如減少日誌的詳細程度,或為外部服務(例如電子郵件伺服器)指定設定
- 指定一個重啟策略,例如
restart: always
,以避免停機 - 新增額外的服務,例如日誌聚合器
出於這個原因,請考慮定義一個額外的 Compose 檔案,例如 production.yml
,它指定適合生產環境的配置。此配置檔案只需要包含您想從原始 Compose 檔案中進行的更改。然後將額外的 Compose 檔案應用到原始的 compose.yml
上,以建立一個新的配置。
有了第二個配置檔案後,就可以使用 -f
選項。
$ docker compose -f compose.yml -f production.yml up -d
有關更完整的示例和其他選項,請參閱 使用多個 Compose 檔案。
部署更改
當您更改應用程式程式碼時,請記住重新構建映象並重新建立應用程式的容器。要重新部署名為 web
的服務,請使用
$ docker compose build web
$ docker compose up --no-deps -d web
第一個命令會重新構建 web
的映象,然後停止、銷燬並重新建立 web
服務。--no-deps
標誌會阻止 Compose 也重新建立 web
所依賴的任何服務。
在一臺伺服器上執行 Compose
您可以使用 Compose 將應用程式部署到遠端 Docker 主機,方法是適當地設定 DOCKER_HOST
、DOCKER_TLS_VERIFY
和 DOCKER_CERT_PATH
環境變數。有關更多資訊,請參閱 預定義的環境變數。
設定好環境變數後,所有正常的 docker compose
命令都無需任何其他配置即可使用。