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
中的更新文件将与容器文件系统同步,以确保容器始终运行最新的内容。