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 中發生變更的檔案將與容器檔案系統同步,以便後者始終以最新的內容運行。