Compose 開發規格
目錄
注意事項
Develop(開發)是 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(忽略)
ignore
屬性可用於定義要忽略的路徑模式清單。任何符合模式或屬於符合模式的資料夾的已更新檔案,都不會觸發服務重新建立。語法與 .dockerignore
檔案相同
*
匹配檔案名稱中 0 個或多個字元。?
匹配檔案名稱中的一個字元。*/*
匹配兩個名稱任意的巢狀資料夾。**
匹配任意數量的巢狀資料夾。
如果建置上下文包含 .dockerignore
檔案,則此檔案中的模式將作為 ignores
檔案的隱式內容載入,並且 Compose 模型中設定的值將會被附加。
path(路徑)
path
屬性定義要監控變更的程式碼路徑(相對於專案目錄)。路徑內任何檔案的更新(不符合任何 ignore
規則)都會觸發已配置的動作。
target(目標)
target
屬性僅在 action
設定為 sync
時適用。path
中發生變更的檔案將與容器檔案系統同步,以便後者始終以最新的內容運行。