Compose 开发规范

注意:

Develop 是 Compose 规范的可选部分。它适用于 Docker Compose 版本 2.22.0 及更高版本。

本页介绍了 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

属性

该小节定义了 Compose 应用的配置选项,这些选项可帮助您在开发具有优化工作流程的服务时提供帮助。develop

该属性定义一个规则列表,这些规则根据本地文件更改控制自动服务更新。 是一个序列,则序列中的每个单独项都定义要应用的规则 Compose 以监控源代码的更改。有关更多信息,请参阅使用 Compose Watchwatchwatch

行动

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

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

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

忽视

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

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

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

路径

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

目标

target属性仅在为 配置时适用。同步 with changes 中的文件 使用容器文件系统,以便后者始终使用最新内容运行。actionsyncpath