在生產環境中使用 Compose

當您在開發中用 Compose 定義您的應用程式時,您可以使用此定義在不同的環境(如 CI、暫存和生產)中執行您的應用程式。

部署應用程式最簡單的方法是在單個伺服器上執行它,類似於您執行開發環境的方式。如果您想擴充套件您的應用程式,可以在 Swarm 叢集上執行 Compose 應用程式。

修改 Compose 檔案以用於生產環境

您可能需要更改應用程式配置,以使其適應生產環境。這些更改可能包括:

  • 刪除應用程式程式碼的任何卷繫結,以便程式碼保留在容器內,不能從外部更改
  • 繫結到主機上的不同埠
  • 以不同方式設定環境變數,例如減少日誌的詳細程度,或指定外部服務(如電子郵件伺服器)的設定
  • 指定重啟策略,如 restart: always,以避免停機
  • 新增額外服務,如日誌聚合器

因此,請考慮定義一個額外的 Compose 檔案,例如 compose.production.yaml,其中包含生產環境特定的配置細節。此配置檔案只需包含您想從原始 Compose 檔案中進行的更改。然後,將額外的 Compose 檔案應用到原始 compose.yaml 之上,以建立新的配置。

一旦您有了第二個配置檔案,就可以使用 -f 選項來使用它。

$ docker compose -f compose.yaml -f compose.production.yaml up -d

有關更完整的示例和其他選項,請參閱使用多個 Compose 檔案

部署更改

當您更改應用程式程式碼時,請記住重建映象並重新建立應用程式的容器。要重新部署名為 web 的服務,請使用:

$ docker compose build web
$ docker compose up --no-deps -d web

此第一個命令重建 web 的映象,然後停止、銷燬並重新建立僅 web 服務。--no-deps 標誌阻止 Compose 同時重新建立 web 依賴的任何服務。

在單個伺服器上執行 Compose

您可以透過適當設定 DOCKER_HOSTDOCKER_TLS_VERIFYDOCKER_CERT_PATH 環境變數,使用 Compose 將應用程式部署到遠端 Docker 主機。有關更多資訊,請參閱預定義環境變數

設定好環境變數後,所有常規的 docker compose 命令都無需進一步配置即可工作。

後續步驟