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 文件,则该文件中的模式将作为隐式内容加载到 ignores 文件中,并且 Compose 模型中设置的值将被追加。
路径
path 属性定义了要监视更改的源代码路径(相对于项目目录)。对该路径内任何文件的更新,如果不匹配任何 ignore 规则,将触发配置的操作。
目标
target 属性仅当 action 为 sync 配置时才适用。path 中发生更改的文件会与容器文件系统同步,以便后者始终运行最新的内容。