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是一个序列,则序列中的每个单独项都定义要应用的规则 Compose 以监控源代码的更改。有关更多信息,请参阅使用 Compose Watch

行动

action定义在检测到更改时要采取的作。如果action设置为:

  • rebuild中,Compose 会根据build部分,并使用更新后的镜像重新创建服务。
  • sync中,Compose 会保持现有服务容器运行,但会根据target属性。
  • sync+restart中,Compose 会根据target属性,然后重新启动容器。

sync+restart属性可用于 Docker Compose 版本 2.23.0 及更高版本。

忽视

ignore属性可用于定义要忽略的路径的模式列表。任何更新的文件 匹配模式或属于匹配模式的文件夹时,不会触发重新创建服务。 语法与.dockerignore文件:

  • *匹配文件名中的 0 个或多个字符。
  • ?匹配文件名中的单个字符。
  • */*匹配两个具有任意名称的嵌套文件夹
  • **匹配任意数量的嵌套文件夹

如果构建上下文包含.dockerignore文件中,此文件中的模式将作为隐式内容加载 对于ignoresfile 中,并在 Compose 模型中设置的值。

路径

path属性 定义源代码的路径(相对于项目目录)以监控更改。对任何文件的更新 在 path 中,它不匹配任何ignorerule 触发配置的作。

目标

target属性仅在action配置为sync.文件pathwith changes 是同步的 使用容器文件系统,以便后者始终使用最新内容运行。