撰写开发规范

笔记:

开发是 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与容器文件系统同步,以便后者始终以最新内容运行。