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 中的更新檔案將與容器檔案系統同步,以確保容器始終執行最新的內容。