撰写开发规范
笔记:
开发是 Compose 规范的可选部分。它适用于 Docker Compose 版本 2.22.0 及更高版本。
介绍
Compose 专注于在本地计算机上运行应用程序的开发用例。它还支持一些开发挂钩来提高本地工作流程的速度,也称为“内循环”。本文档定义了 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
与容器文件系统同步,以便后者始终以最新内容运行。