Compose 開發規範
目錄
注意
開發是 Compose 規範的可選部分。它在 Docker Compose 版本 2.22.0 及更高版本中可用。
此頁面定義了 Compose 如何有效地幫助您,並定義了 Compose 設定的開發約束和工作流程。Compose 檔案中只有一小部分服務可能需要 develop
子部分。
示例
services:
frontend:
image: example/webapp
build: ./webapp
develop:
watch:
# sync static content
- path: ./webapp/html
action: sync
target: /var/www
ignore:
- node_modules/
backend:
image: example/backend
build: ./backend
develop:
watch:
# rebuild image and recreate service
- path: ./backend/src
action: rebuild
屬性
develop
子部分定義了 Compose 用於幫助您在開發服務時最佳化工作流程的配置選項。
watch
watch
屬性定義了一組規則,這些規則控制基於本地檔案更改的自動服務更新。watch
是一個序列,序列中的每個單獨專案都定義了 Compose 用於監視原始碼更改的規則。有關更多資訊,請參閱 使用 Compose Watch.
action
action
定義在檢測到更改時要採取的操作。如果將 action
設定為
rebuild
,Compose 將根據build
部分重建服務映像,並使用更新後的映像重新建立服務。sync
,Compose 會保持現有服務容器執行,但會根據target
屬性將原始檔與容器內容同步。sync+restart
命令會在 Compose 將原始檔與容器內容根據target
屬性同步後,重啟容器。
sync+restart
屬性在 Docker Compose 2.23.0 及更高版本中可用。
忽略
ignore
屬性用於定義要忽略的路徑模式列表。任何匹配模式的更新檔案,或屬於匹配模式的資料夾,都不會觸發服務的重新建立。語法與 .dockerignore
檔案相同。
*
匹配檔名中的 0 個或多個字元。?
匹配檔名中的單個字元。*/*
匹配兩個具有任意名稱的巢狀資料夾。**
匹配任意數量的巢狀資料夾。
如果構建上下文包含 .dockerignore
檔案,則該檔案中的模式將作為 ignores
檔案的隱式內容載入,並在 Compose 模型中設定的值將被附加。
路徑
path
屬性定義要監視更改的原始碼路徑(相對於專案目錄)。路徑內部任何不匹配任何 ignore
規則的更新檔案都會觸發配置的操作。
目標
target
屬性僅在 action
配置為 sync
時適用。path
中的更新檔案將與容器檔案系統同步,以確保容器始終執行最新的內容。