在生產環境中使用 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
您可以透過適當地設定 DOCKER_HOST
、DOCKER_TLS_VERIFY
和 DOCKER_CERT_PATH
環境變數,使用 Compose 將應用程式部署到遠端 Docker 主機。 如需詳細資訊,請參閱 預先定義的環境變數。
設定好環境變數後,所有正常的 docker compose
命令都可以使用,無需進一步設定。