Docker Compose 发布说明

目录

有关更多详细信息,请参阅 Compose 仓库中的发布说明

2.32.0

2024-12-13

更新

  • 依赖项升级:将 docker + buildx 更新至最新版本
  • 依赖项升级:将otel依赖项升级至v1.28.0和v0.53.0
  • 依赖项升级:将 golang.org/x/sys 升级至 0.28.0
  • 依赖项升级:将 golang.org/x/crypto 升级到 0.31.0
  • 依赖项升级:将 google.golang.org/grpc 升级至 1.68.1
  • 依赖项升级:将 golang.org/x/sync 升级至 0.10.0
  • 依赖项升级:将 xx 升级到 v1.6.1

Bug修复和增强

  • 改进了使用 Bake 构建时的支持
  • 添加了restartsync+exec监视操作
  • 当卷或网络配置更改时,Compose 现在会重新创建容器
  • 修复了对mac_address的支持
  • 修复了pull --quiet只隐藏进度,不隐藏全局状态的问题
  • 修复了一个问题,现在只有rebuild监视操作需要构建声明
  • Compose 现在在通过 Compose 菜单启用时记录 watch 配置错误

2.31.0

2024-11-28

更新

  • 依赖项升级:将compose-go升级到v2.4.5
  • 依赖项升级:将docker引擎和cli升级到v27.4.0-rc.2
  • 依赖项升级:将 buildx 升级到 v0.18.0
  • 依赖项升级:将 buildkit 升级到 v0.17.1

Bug fixes and enhancements

  • 增加了使用 Docker Buildx Bake 来构建 Docker Compose 服务的能力
  • 添加了commit命令,用于从正在运行的容器创建新镜像
  • 修复了未检测到网络更改的问题
  • 修复了容器按顺序停止导致重启过程变慢的问题

2.30.3

2024-11-07

更新

  • 依赖项升级:将compose-go升级到v2.4.4

Bug修复和增强

  • 修复了在使用--watch时不应重新启动服务的问题
  • 改进在Compose文件中多次使用相同YAML锚点的修复

2.30.2

2024-11-05

更新

  • 依赖项升级:将 compose-go 升级到 v2.4.3

错误修复和增强功能

  • 修复了在更新其配置文件时重新创建服务的问题
  • 修复了在Compose文件中多次使用相同YAML锚点时出现的回归问题

2.30.1

2024-10-30

更新

  • 依赖项升级:将 compose-go 升级到 v2.4.2

Bug修复和增强功能

  • 修复了使用stdin作为-f标志输入时的回归问题
  • 修复了在Compose文件中多次使用相同YAML锚点时出现的回归问题

2.30.0

2024-10-29

更新

  • 依赖项升级:将 compose-go 升级到 v2.4.1
  • 依赖项升级:将docker引擎和cli升级到v27.3.1

Bug修复和增强

  • 服务钩子支持的介绍。
  • 添加了alpha generate命令。
  • 添加了export命令。
  • 在Compose文件中添加了对使用devices进行CDI设备请求的支持。
  • 许多错误修复。

2.29.7

2024-09-20

Bug fixes and enhancements

  • 修复了在使用 mount API 进行绑定挂载时的回归问题。

2.29.6

2024-09-19

更新

  • 依赖项升级:将docker引擎和cli升级到v27.3.0-rc.2

Bug修复和增强功能

  • 修复了Windows容器绑定挂载的问题。

2.29.5

2024-09-17

错误修复和增强功能

  • 修复了WSL2上的绑定挂载问题。

2.29.4

2024-09-16

更新

  • 依赖项升级:将 buildx 升级到 v0.17.1
  • 依赖项升级:将docker引擎和cli升级到v27.3.0-rc.1

错误修复和增强功能

  • 修复了在重新启动分叉依赖项时服务未停止的问题。
  • 修复了OTEL客户端上潜在的nil指针错误。

2.29.3

2024-09-12

更新

  • 依赖项升级:将compose-go升级到v2.2.0
  • 依赖项升级:将docker引擎和cli升级到v27.2.1

Bug fixes and enhancements

  • 现在允许将绑定挂载与rebuild结合使用watch
  • 修复了在使用--no-depsup时重新创建容器的错误。
  • 修复了在重新附加容器时未关闭流的错误。
  • 在使用-V--renew-anon-volumes时,恢复了匿名卷的重新创建。

2.29.2

2024-08-16

更新

  • 依赖项升级:将compose-go升级到v2.1.6
  • 依赖项升级:将docker引擎和cli升级到v27.1.2
  • 依赖项升级:将 buildx 升级到 v0.16.2
  • 依赖项升级:将 buildkit 升级到 v0.15.2
  • 依赖项升级:将 golang 升级至 v1.21.12
  • 依赖项升级:将 sys 升级到 v0.22.0
  • 依赖项升级:将flock升级到v0.12.1

Bug修复和增强

  • 修复了关于docker compose kill用法的文档。
  • 修复了build.go中toAPIBuildOptions的冗余条件。
  • 修复了在Compose重启后初始Watch sync的问题,引入了x-initSync
  • 修复了在sync-restart Watch操作中阻止单个容器的Compose进程的问题。

2.29.1

2024-07-23

更新

  • 依赖项升级:将compose-go升级到v2.1.5。
  • 依赖项升级:将docker引擎和cli升级到v27.1.0。

Bug fixes and enhancements

  • 增强JSON进度事件,增加更多字段。

2.29.0

2024-07-17

更新

  • 依赖项升级:将compose-go升级到v2.1.4
  • 依赖项升级:将docker引擎和cli升级到v27.0.3
  • 依赖项升级:将 buildx 升级到 0.16.0
  • 依赖项升级:将 buildkit 升级到 0.15.0
  • 依赖项升级:将 containerd 升级至 1.7.19

Bug fixes and enhancements

  • 添加了一个JSON流进度写入器。
  • docker compose watch命令添加了一个--prune标志。
  • 在选择服务后,不必要的资源现在被排除在外。
  • 没有值的空变量在容器中未设置。

2.28.1

2024-06-24

Bug fixes and enhancements

  • 修复了在TTY模式可用时,进度显示在v2.28.0版本中损坏的问题。

2.28.0

2024-06-21

更新

  • 依赖项升级:将 compose-go 升级到 v2.1.3
  • 依赖项升级:将docker引擎和cli升级到v27.0.1-rc.1

2.27.3

2024-06-21

更新

  • 依赖项升级:将 buildx 升级至 0.15.1
  • 依赖项升级:将 buildkit 升级至 0.14.1

2.27.2

2024-06-20

更新

  • 依赖项升级:将 golang 升级至 1.21.11
  • 依赖项升级:将docker引擎和cli升级到v26.1.4
  • 依赖项升级:将 buildx 升级到 0.15.0
  • 依赖项升级:将 buildkit 升级至 0.14.0
  • 依赖项升级:将 containerd 升级至 1.7.18

Bug fixes and enhancements

  • config命令添加了一个--environment标志
  • 修复了一个导致watch进程在使用up命令作为标志时挂起的错误
  • 修复了在.env文件中使用COMPOSE_PROFILES的问题

2.27.1

2024-05-24

更新

  • 依赖项升级:将 compose-go 升级到 v2.1.1
  • 依赖项升级:将docker引擎和cli升级到v26.1.3
  • 依赖项升级:将 buildx 升级到 0.14.1
  • 依赖项升级:将 containerd 升级到 1.7.17

Bug修复和增强

  • 在CLI中添加了一个导航菜单,您可以在Docker Desktop中打开您的Compose文件
  • docker compose up中的--menu标志添加了文档
  • 修复了与--resolve-image-digests--no-interpolate一起使用时的一个错误
  • 您现在可以使用本地的 .env 文件来覆盖 COMPOSE_* 环境变量

2.27.0

2024-04-24

更新

  • 依赖项升级:将golang升级到1.21.9
  • 依赖项升级:将 compose-go 升级到 v2.1.0
  • 依赖项升级:将docker引擎和cli升级到v26.1.0

错误修复和功能增强

  • 引入了 --abort-on-container-failure 标志
  • 引入了 --all-resources 以不排除未被服务使用的资源
  • 引入了对build.entitlements的支持
  • 修复了一个错误,使得在运行docker compose down/stop -p时,Docker Compose现在会忽略缺失的容器
  • 修复了在兼容模式下对--flag=value语法的支持

2.26.1

2024-03-29

更新

  • 依赖项升级:opencontainers/image-spec v1.1.0

错误修复和功能增强

  • 在输出中添加了镜像拉取失败的原因
  • 修复了在使用--no-build--watch时运行崩溃的问题
  • 修复了在没有TTY可用且菜单启用时崩溃的问题
  • 提高了菜单操作的可读性

2.26.0

2024-03-22

更新

  • 依赖项升级:更新 compose-go 到 v2.0.2
  • 依赖项升级:更新 docker 至 v26.0.0

Bug修复和增强功能

  • 减少了Otel追踪命令的超时时间
  • 修复了 config --format json
  • 修复了关于默认构建镜像名称的文档
  • 在Compose中引入了用于绑定挂载的同步文件共享
  • 添加了对annotations的支持
  • 引入了 config --variables 以列出 Compose 模型变量
  • docker compose up中添加了一个导航菜单

2.25.0

2024-03-15

更新

  • 依赖项升级:升级 compose-go 到 v2.0.0

错误修复和功能增强

  • 恢复了config的行为,直到设置了--no-interpolate
  • 修复了服务名称的shell自动补全功能
  • up命令添加了--watch标志

2.24.7

2024-03-06

更新

  • 依赖项升级:将 golang 升级到 1.21.8
  • 依赖项升级:将 compose-go 升级到 2.0.0-rc8
  • 依赖项升级:将 docker 升级到 v24.0.4

Bug fixes and enhancements

  • Compose 现在确保网络的优先级排序顺序稳定
  • 修复了默认值中使用大括号(例如JSON)的插值问题
  • 修复了非唯一container_name值的验证问题
  • 修复了develop.watch的验证
  • 修复了include的环境加载问题
  • 修复了合并标签/网络时的崩溃问题
  • 添加了对使用include时的--no-path-resolution支持
  • 修复了项目名称缺失的错误
  • 修复了config上的--no-interpolate标志
  • 为Windows上的Watch模式中的文件锁定问题添加了一个临时解决方案
  • 修复了重复的退出代码状态消息
  • Compose 现在在 up 时尊重 COMPOSE_REMOVE_ORPHANS

2.24.6

2024-02-15

更新

  • 依赖项升级:将cli升级至25.0.3
  • 依赖项升级:将compose-go升级到2.0.0-rc.7

Bug修复和增强功能

  • 修复了通过COMPOSE_FILE变量设置项目文件时.env文件加载的问题
  • ps --status=exited 的行为与 Docker CLI 的行为对齐
  • 修复了收集大日志时出现的死锁问题

2.24.5

2024-01-30

Bug fixes and enhancements

  • 修复了在Windows上构建镜像时出现的“无法解决:更改顺序错误”的问题。

2.24.4

2024-01-29

更新

  • 依赖项升级:将cli升级到25.0.1
  • 依赖项升级:将docker升级至25.0.1
  • 依赖项升级:将compose-go升级到2.0.0-rc.3

Bug修复和功能增强

  • 修复了在启用swarm时检查外部网络存在的问题。
  • 增加了对storage_opt属性的支持。

2.24.3

2024-01-24

此版本修复了在Compose v2.24.0中引入的Docker Desktop for Windows的构建问题。

更新

  • Compose 现在使用了一个自定义版本的 fsutils 库。

2.24.2

2024-01-22

更新

  • 依赖项升级:将 cli 升级至 25.0.0 GA
  • 依赖项升级:将 compose-go 升级到 2.0.0-rc.2

2.24.1

2024-01-18

更新

  • 依赖项升级:将cli升级到25.0.0-rc3
  • 依赖项升级:将 docker 升级至 25.0.0-rc3
  • 依赖项升级:将compose-go升级到2.0.0-rc.1
  • 依赖项升级:将 containerd 升级至 1.7.12

Bug修复和增强

  • 重新设计了在up期间容器状态的显示
  • 修复了使用healthcheck.start_interval所需的引擎版本
  • alpha命令中移除了watch子命令
  • 修复了处理接收信号时的错误

2.24.0

2024-01-11

更新

  • 依赖项升级:将cli升级到25.0.0-beta.3
  • 依赖项升级:将compose-go升级到2.0.0-beta.3
  • 依赖项升级:将 golang 升级至 1.21.6

Bug 修复和功能增强

  • 引入了 docker compose attach 以将本地标准输入、输出和错误流附加到服务的运行容器。
  • 引入了 docker compose stats 以显示容器资源使用统计的实时流。
  • 引入了 docker compose ps --orphans 来包含/排除未声明的服务。
  • 引入了 docker compose logs --index 来选择副本容器。
  • 引入了 docker compose build --with-dependencies 以同时构建依赖项。
  • 添加了构建的源策略。
  • 包含了用于shell补全的禁用服务。
  • 恢复了 ps JSON 输出中的 Project
  • 为AWS ECR添加了OCI 1.0回退支持。
  • 现在构建不需要解析环境。
  • Compose 现在在接收到 SIGINT/SIGTERM 信号时为 compose up 发送取消事件。
  • 通过暴露服务端口修复日志,当使用--verbose时。
  • 修复了内联和环境定义的配置,在设置明确目标之前,将其挂载在 / 下。
  • 修复了--pull always --no-build的组合问题。
  • 修复了日志打印机中的竞争条件。
  • 修复了当命令上下文被取消时docker compose up的拆卸问题。

2.23.3

2023-11-22

更新

  • 依赖项升级:将buildx升级到v0.12.0

2.23.2

2023-11-21

更新

  • 依赖项升级:升级 buildkit 至 0.12.3
  • 依赖项升级:更新 docker 24.0.7
  • 依赖项升级:升级 cli 24.0.7
  • 依赖项升级:更新至1.20.2

Bug fixes and enhancements

  • Compose 现在支持使用 builds.tagspush 命令。
  • Compose Watch 现在在启动时会重新构建服务镜像。
  • 现在 --remove-orphans 不会将禁用的服务视为孤立服务。
  • Compose 仅在至少有一个服务需要构建时显示 Building 输出日志。

2.23.1

2023-11-16

更新

  • 依赖项升级:将compose-go升级至v1.20.1

Bug fixes and enhancements

  • 与OCI工件最佳实践对齐的Compose。
  • 引入了--resolve-image-digests,以便用户在发布Compose应用程序时可以通过摘要来密封服务镜像。
  • 改进了Compose Watch配置的日志记录。
  • Compose 现在会拒绝使用 secrets|configs.drivertemplate_driver 的 Compose 文件。
  • 如果缺少依赖项,Compose 现在将无法启动。
  • 修复了SIGTERM支持以停止/终止堆栈。
  • 修复了一个 --hash 回归问题。
  • 修复了当外部网络处于监视服务上时“更新后应用程序无法启动”的问题。
  • 修复了--pull的文档。
  • 通过在cmd/compose/build.go中添加换行符来修复显示问题。
  • 应用过滤后,Compose 渲染变得安静。
  • 从docker-compose up输出中去除了项目前缀。

2.23.0

2023-10-18

更新

  • 依赖项升级:将 compose-go 升级到 v1.20.0
  • 依赖项升级:将 containerd 升级至 1.7.7

Bug fixes and enhancements

  • 为发布命令添加了试运行支持
  • 添加了COMPOSE_ENV_FILES环境变量以传递环境文件列表
  • compose watch中添加了sync+restart操作
  • 默认情况下,将compose ps输出与Docker CLI对齐,并引入了--no-trunc以保持之前的行为
  • 修复了upconfigure之间的哈希不一致问题
  • 当使用明确的服务名称运行down时启用的配置文件
  • 修复了提供的拉取策略无效时的问题

2.22.0

2023-09-21

注意

watch 命令现已正式发布(GA)。您可以直接从根命令 docker compose watch 使用它。 更多信息,请参阅 文件监视

更新

  • 依赖项升级:将 golang 升级至 1.21.1
  • 依赖项升级:将compose-go升级到v1.19.0
  • 依赖项升级:将 buildkit 升级至 v0.12.2

Bug修复和增强

  • 增加了对publish命令的实验性支持。
  • 命令 watch 现在在启动时构建并启动项目。
  • --pull标志添加了policy选项。
  • 修复了退出时up命令的各种竞争和死锁条件。
  • 修复了构建中的多平台问题。
  • 启用了明确请求的服务,即使它们的profiles未被激活。
  • 修复了当声明的env_file缺失时的config问题。
  • 将BuildOptions传递给uprun命令。

2.21.0

2023-08-30

注意

docker compose psdocker compose ps --format=json 的格式已更改,以更好地与 docker ps 输出对齐。请参阅 compose#10918.

更新

  • 依赖项升级:将compose-go升级至v1.18.3

Bug修复和增强功能

  • 更改了docker compose psdocker compose ps --format=json输出以与Docker CLI对齐。
  • 添加了对多文档YAML文件的支持。
  • 增加了从Git仓库加载远程Compose文件的支持,使用include(实验性功能)。
  • 修复了构建过程中代理变量不正确的问题。
  • 修复了容器退出时容器日志被截断的问题。
  • 修复了在使用include--profile时出现的“没有此类服务”错误。
  • 修复了使用include.env覆盖的问题。

2.20.3

2023-08-11

更新

  • 依赖项升级:将 golang 升级至 1.21.0
  • 依赖项升级:将compose-go升级至v1.18.1
  • 依赖项升级:将 buildkit 升级至 v0.12.1

Bug fixes and enhancements

  • 提高了watch同步的速度和可靠性。
  • 在第一条构建行上添加了构建者的名称。
  • 改进了--project-directory--profile的shell自动补全功能。
  • 修复了代理配置未传递给旧版构建器的构建问题。
  • 成功存在选项依赖时,移除了不必要的警告。

2.20.2

2023-07-19

Bug fixes and enhancements

  • 增加了对depends_on.required属性的支持。
  • 修复了构建尝试推送未命名服务镜像的问题。
  • 修复了一个错误,该错误导致未检查Windows上的目标密钥路径。
  • 修复了使用extends.file解析服务构建上下文路径的bug。

2.20.1

2023-07-18

更新

  • 依赖项升级:将 golang 升级到 1.20.6
  • 依赖项升级:将 buildx 升级到 v0.11.2
  • 依赖项升级:将 buildkit 升级到 v0.12
  • 依赖项升级:将 docker-cli 升级至 v24.0.5-dev

2.20.0

2023-07-11

更新

  • 依赖项升级:将 docker/cli-docs-tools 升级到 v0.6.0
  • 依赖项升级:将 docker 升级到 v24.0.4
  • 依赖项升级:将 buildx 升级至 v0.11.1

Bug修复和增强

  • 引入了wait命令。
  • build命令添加了对--builderBUILDX_BUILDER的支持。
  • 添加了对Compose规范中includeattach属性的支持。
  • 修复了初始化CLI客户端时的DryRun模式问题。
  • 修复了当服务有多个时随机丢失网络的错误。
  • 修复了Secrets文件权限值以符合Compose规范。
  • 修复了关于no-deps标志未应用的问题。
  • 修复了一些源代码注释。
  • 修复了当未设置--index时选择的错误。
  • 修复了等待端到端测试中的进程泄漏问题。
  • 提高了一些测试速度。

2.19.1

2023-06-29

更新

  • 依赖项升级:将compose-go升级至v1.15.1

Bug fixes and enhancements

  • 修复了在compose up时偶尔出现的“容器未连接到网络”错误。
  • 修复了在compose build上出现的“请指定构建上下文”错误。
  • 如果在服务的watch配置中使用绑定挂载,Compose 现在会发出警告。

2.19.0

2023-06-21

更新

  • 依赖项升级:将compose-go升级至v1.15.0
  • 依赖项升级:将 buildx 升级到 v0.11.0
  • 依赖项升级:将docker升级至v24.0.2
  • 依赖项升级:将 golang 升级到 1.20.5

错误修复和增强功能

  • 引入了通过compose down选择单个服务停止的功能。
  • 添加了--progress作为顶级标志来配置进度UI样式。
  • 引入了run --cap-add来使用服务镜像运行维护命令。
  • 修复了在检测群集模式时的一个错误。
  • 修复了通过COMPOSE_PROJECT_NAME环境变量设置项目名称时的错误。
  • 借助down命令调整了卷标的显示。
  • 修复了up命令中的一个错误,该错误不应静默忽略缺失的depends_on服务。
  • 将前向信号与容器行为对齐,与docker run一致。
  • Compose 现在可以检测到网络名称冲突。
  • 修复了关于现有卷的警告消息中的拼写错误。
  • Compose 现在可以检测到在 compose -p x logs -f 命令之后启动的新服务。
  • 修复了当compose被用作项目名称时的错误。
  • 修复了当目录不存在时watch命令中的一个错误。
  • 在重启或停止服务时,移除了默认的10秒超时设置。
  • 修复了watch中默认应用“rebuild”策略的错误。
  • 修复了一个竞争条件,当一个容器退出时等待其他容器。
  • 添加了一个警告,告诉用户build.secrets中未实现uid、gid、mode。
  • 修复了watch中的一个错误,该错误监视了整个构建上下文,而不是仅监视配置的路径。
  • Compose 现在按创建日期对容器进行排序,以便首先缩减较旧的容器。
  • 修复了Windows环境下文档生成任务中的一个错误。
  • 更新了文档以反映Dry Run模式功能已完成。
  • 改进了网络标签不匹配时的诊断信息。
  • 修复了一个在没有构建时渲染Building部分的错误。
  • 修复了代码覆盖率指标中的一个错误。
  • 添加了OTEL初始化。
  • 添加了一个GitHub操作,用于使用Compose边缘版本触发Docker Desktop端到端测试。
  • 为dependabot添加了更多的忽略规则。

2.18.1

2023-05-17

Bug fixes and enhancements

  • 修复了构建镜像时出现的“未找到镜像”错误

2.18.0

2023-05-16

更新

  • 依赖项升级:将 compose-go 升级至 v1.13.5
  • 依赖项升级:将 buildkit 升级至 v0.11.6
  • 依赖项升级:将docker升级至v23.0.5

Bug fixes and enhancements

  • 添加了使用--dry-run的试运行支持
  • 添加了viz子命令的第一个(alpha)实现
  • 引入了--no-path-resolution以跳过相对路径的解析
  • 引入了 COMPOSE_ANSI 来定义 --ansi 的默认值
  • 引入了COMPOSE_STATUS_STDOUT以获取发送到stdout的状态消息
  • 修复了BuildKit进度用户界面集成
  • 修复了一个阻止事件循环收集日志的错误
  • 恢复了对--memory的支持
  • 修复了一个导致容器在终止后未停止的错误
  • Compose 现在允许用户声明构建秘密目标
  • 修复了一个导致配置未更改时容器被重新创建的bug
  • 修复了当--parallel与大量依赖服务一起使用时出现的竞争条件
  • Compose 现在会检查本地镜像是否匹配所需的平台
  • 修复了在运行compose down时使用--project-name时本地镜像删除的问题
  • Compose 现在会检测尝试移除网络的活跃端点,并跳过并发出警告
  • 移除了不必要的[]输出
  • Compose 检测到 Windows 终端不是 console.File 以避免出现恐慌
  • --parallel 现在优先于 COMPOSE_PARALLEL_LIMIT
  • 当Swarm被禁用时,Compose现在会报告未找到外部网络

2.17.2

2023-03-26

更新

  • 依赖项升级:将compose-go升级至v1.13.2

Bug修复和功能增强

  • 修复了目录名称中包含大写字母或.时项目名称无效的错误。修复了 compose#10405

2.17.1

2023-03-24

更新

  • 依赖项升级:将 buildkit 升级至 v0.11.5
  • 依赖项升级:将compose-go升级至v1.13.1
  • 依赖项升级:将golang升级到1.20.2

Bug修复和增强功能

  • 修复了alpha watch命令的崩溃问题。拉取请求 compose#10393
  • 防止了名为extensions的服务的冲突。修复了 compose-go#247
  • Compose 现在更一致地验证项目名称。修复了 compose-go#363

2.17.0

2023-03-23

升级说明

  • 项目名称验证更加严格。项目名称只能包含字母、数字、_-,并且必须是小写字母,且以字母或数字开头。
  • YAML中的布尔字段必须是truefalse。不推荐使用的YAML 1.1值,如"on"或"no",不被支持。
  • 重复的YAML合并键(<<)被拒绝。

更新

  • 依赖项升级:将 buildkit 升级至 v0.11.4
  • 依赖项升级:将buildx升级到v0.10.4
  • 依赖项升级:将 containerd 升级到 1.6.18
  • 依赖项升级:将 compose-go 升级至 v1.13.0

Bug fixes and enhancements

  • up命令中引入了--wait-timeout。修复了 compose#10269
  • 使compose service --hash输出按服务名称排序。拉取请求 compose#10278
  • Compose 现在渲染一个紧凑的 TUI 进度报告来监控层的下载。Pull Request compose#10281
  • depends_on 引入了 restart。修复了 compose#10284
  • 增加了对NO_COLOR环境变量的支持。修复了 compose#10340
  • 进度写入器现在使用 dockercli.Err 流。已修复 compose#10366
  • build服务配置中添加了对additional_contexts的支持。修复了 compose#9461 compose#9961
  • watch模式中添加了文件删除/重命名处理。拉取请求 compose#10386
  • watch模式中引入了一个ignore属性。拉取请求 compose#10385
  • Compose 现在使用进度写入器来显示复制状态。Pull Request compose#10387
  • 更新了-p/--project-name标志的参考文档。修复了 docs#16915, compose-spec#311
  • 引入了一个replace标签来跟踪服务新旧容器之间的关系。修复了 compose#9600
  • 修复了一个错误,该错误导致在服务重启后依赖服务未重启。修复了 compose#10263
  • Compose 现在在 watch 模式下忽略没有构建部分的服务。已修复 compose#10270
  • Compose 现在应用了伪子命令的配置选项。修复了 compose#10286
  • Compose 仅管理带有 config_hash 标签的容器(即由 compose 创建的容器)。已修复 compose#10317
  • 如果项目名称在规范化后为空,Compose 会触发错误。已修复 compose#10313
  • Compose 通过检查 depends_on 关系仅重启所需服务。修复了 compose#10337
  • 修复了小终端上的显示问题。修复了 compose#10322
  • 修复了构建内置镜像ID集合的问题。拉取请求 compose#10372
  • 使用配置的名称分隔符来定义一次性容器名称。已修复 compose#10354
  • 修复了在重新创建容器时的并发映射读/写问题。修复了 compose#10319
  • Compose 现在支持 stoprm 命令的 Dry Run 模式。Pull Request compose#10257
  • Compose 现在支持 pull 命令的 Dry Run 模式。Pull Request compose#10341
  • Compose 现在支持 push 命令的 Dry Run 模式。Pull Request compose#10355
  • Compose 现在支持 exec 命令的 Dry Run 模式。Pull Request compose#10252
  • Compose 现在支持 restart 命令的 Dry Run 模式。Pull Request compose#10339

2.16.0

2023-02-08

更新

  • 依赖项升级:将docker升级到v23.0.0
  • 依赖项升级:将 docker-cli 升级至 v23.0.0
  • 依赖项升级:将 buildkit 升级至 v0.11.2
  • 依赖项升级:将 buildx 升级到 v0.10.2
  • 依赖项升级:将 containerd 升级到 1.6.16
  • 依赖项升级:将 golang 升级到 1.20

Bug修复和功能增强

  • compose create命令引入了--remove-orphans。修复了 compose#9718
  • 当终端太小的时候,缩短了TTY输出。修复了 compose#9962
  • 添加了remove-orphans功能以运行。修复了 compose#9718
  • 引入了实验性的 watch 命令。拉取请求 compose#10163
  • Compose 现在允许使用 -t 分配 TTY。修复了 compose#10161
  • 引入了实验性的 dry-run 命令。拉取请求 compose#10173
  • 更新了文档以解释配置并行性的方法。拉取请求 compose#10198
  • 通过将-n别名为--tail,使logs命令与docker CLI保持一致。修复了 compose#10199
  • 增加了对docker compose build --push的支持。拉取请求 compose#10148
  • 添加了--scalecompose create命令中。修复了 compose#10208
  • convert重命名为config以与Compose V1用户体验保持一致。拉取请求 compose#10214
  • Compose 现在将代理配置作为构建参数传递。已修复 compose#8797
  • 修复了在compose up中忽略非Compose创建的容器导致的解析问题。修复了 compose#10162
  • 修复了日志格式化器初始化中的goroutine泄漏问题。修复了 compose#10157
  • 修复了在所有运行的容器都已停止时,compose日志不退出的问题。Pull Request compose#10181
  • 修复了文档以反映docker compose psdocker ps对齐的情况。拉取请求 compose#10195
  • 修复了未找到远程Buildx驱动程序的问题。修复了 compose#9893
  • 改进了重新创建服务容器时的日志记录。拉取请求 compose#10236
  • 修复了一个问题,使Compose现在只等待与等待条件相关的容器。修复了 compose#10200
  • Compose 现在防止了对 nil map 中的条目进行赋值。已修复 compose#10244
  • 为Cucumber测试添加了专用的GitHub Action工作流程。拉取请求 compose#10165
  • 在紧凑日志模式下切换时清理了TUI行。修复了 compose#10201
  • 添加了Tilt监视器以在监视模式下检测代码更改。拉取请求 compose#10218
  • Compose 现在支持 kill 命令的 Dry Run 模式。修复了 compose#10210
  • Compose 现在支持 pause 命令的 Dry Run 模式。已修复 compose#10217
  • Compose 现在支持 cp 命令的 Dry Run 模式。已修复 compose#10235

2.15.1

2023-01-09

更新

  • 依赖项升级以修复 Golan CVE-2022-27664 和 CVE-2022-32149

Bug fixes and enhancements

  • 增加了对UTS命名空间的支持。修复了 compose#8408
  • 修复了未设置过滤器时的过滤问题。修复了 roadmap#418
  • 修复了构建步骤中的并发映射写入问题。拉取请求 compose#10151
  • 修复了当stdin不是终端时的问题。修复了 compose#9739

2.15.0

2023-01-05

更新

  • 依赖项升级:将compose-go升级至v1.8.1
  • 依赖项升级:将 cli-docs-tool 升级至 0.5.1

Bug修复和增强

  • service.build部分增加了对privileged属性的支持。拉取请求 compose#10112
  • 引入了--ignore-buildable以在拉取时忽略可构建的镜像。修复了 compose#8805
  • 引入了--no-attach以忽略某些服务输出。修复了 compose#8546
  • 修复了当driver:none设置时logs的问题。修复了 compose#9030
  • Compose 现在依赖于 dockerCLI.streams。拉取请求 compose#10082
  • 修复了服务哈希必须排除副本的问题。修复了 compose#10077
  • Compose 现在根据项目而不是运行的容器来检查服务名称。已修复 compose#9951
  • 修复了安全选项支持(seccomp 和 unconfined)。修复了 compose#9505
  • 修复了在使用compose配置时,源文件较小的情况下生成空文件的问题。修复了 compose#10121
  • 修复了--pullcompose up上未应用的问题。修复了 compose#10125
  • Compose 不仅应忽略自动移除的容器,还应忽略孤儿容器的“移除中”状态。拉取请求 compose#10136
  • Compose 根据 --parallel 限制构建并发。修复了 compose#9091

2.14.2

2022-12-20

更新

  • 依赖项升级:将 containerd 升级至 1.6.14

Bug fixes and enhancements

  • Compose 现在使用 DOCKER_DEFAULT_PLATFORM 来确定创建容器时的平台。已修复 compose#10041
  • Compose 现在可以检测到依赖项启动失败的情况。已修复 compose#9732
  • 修复了WCOW卷挂载问题。修复了 compose#9577
  • 在使用--all=false时,仅列出正在运行的容器。修复了 compose#10085
  • 修复了在运行pull --ignore-pull-failures时的回归问题。修复了 compose#10089
  • 修复了CPU配额问题。修复了 compose#10073
  • 修复了compose日志中的竞争条件。修复了 compose#8880
  • 通过将其重命名为ProjectOptions,将projectOptions更新为公开。修复了 compose#100102

2.14.1

2022-12-15

更新

  • 依赖项升级:将Go升级到1.19.4
  • 依赖项升级:将 containerd 升级至 1.6.12

Bug fixes and enhancements

  • 添加了--parallel以限制并发引擎调用。拉取请求 compose#10030
  • up日志中区分了stdout和stderr。修复了 compose#8098
  • compose ps 的输出与 docker ps 对齐。修复了 compose#6867
  • 添加了--include-deps到推送命令。拉取请求 compose#10044
  • compose up中引入了--timestamp选项。修复了 compose#5730
  • Compose 现在在从环境创建秘密时应用 uid/gid。拉取请求 compose#10084
  • 修复了等待附加依赖时出现的死锁问题。修复了 compose#10021
  • 修复了在收集拉取的镜像ID时的竞争条件。修复了 compose#9897
  • Compose 不会停止可以构建的镜像的 pull 命令。已修复 compose#8724
  • 修复了没有容器可附加时的极端情况。修复了 compose#8752
  • Compose 容器的启动必须按顺序运行,以便引擎在配置的范围内分配不同的端口。已修复 compose#8530
  • 修复了repository:tag的解析问题。修复了 compose#9208
  • 当用户明确设置时,从文件加载项目。已修复 compose#9554

2.14.0

2022-12-02

更新

  • 依赖项升级:将compose-go升级至 v1.8.0
  • 依赖项升级:将 Go 升级到 1.19.3

Bug fixes and enhancements

  • 在服务定义中添加了oom_score_adj字段。拉取请求 compose#10019
  • 为tmpfs挂载权限添加了模式字段。拉取请求 compose#10031
  • Compose 现在仅在中断时停止由 up 启动的服务。已修复 compose#10028
  • Compose 现在为目标服务加载隐式配置文件。已修复 compose#10025
  • 如果设置了service.platform,则Compose不需要设置service.build.platforms。已修复 compose#10017
  • 如果在构建x镜像时设置了--ansi=never,则使用纯文本输出。已修复 compose#10020
  • COMPOSE_IGNORE_ORPHANS 环境变量现在表现更加一致。修复了 compose#10035
  • Compose 现在在 convert 中使用了正确的图像名称分隔符。修复了 compose#9904
  • 修复了使用network_mode: service:NAME的服务的run功能。修复了 compose#10036

2.13.0

2022-11-23

更新

  • 依赖项升级:将 containerd 升级至 1.6.10
  • 依赖项升级:将 docker-credential-helpers 升级到 v0.7.0
  • 更新CI依赖项。拉取请求 compose#9982

错误修复和增强功能

  • convert命令添加了一个no-consistency选项。修复了 compose#9963
  • 添加了一个build选项到run命令中。修复了 compose#10003
  • 修复了映射restart_policy.condition到引擎支持的值。修复了 compose#8756, docs#15936
  • 修复了deploy.reservation.memory缺失支持的问题。修复了 compose#9902
  • 修复了一个错误,以防止在使用--profile参数时使用COMPOSE_PROFILES。修复了 compose#9895
  • 修复了一个错误,以防止在依赖于将构建此镜像的服务时拉取服务的镜像。修复了 compose#9983
  • 修复了当未找到容器编号标签时的解析问题。修复了 compose#10004
  • 当没有定义service.platform时,Compose现在使用DOCKER_DEFAULT_PLATFORM定义的平台值。已修复 compose#9889
  • 移除了已弃用的依赖项 gotest.tools v2 的使用。拉取请求 compose#9935
  • 排除了标记为kind/feature的问题,使其不参与陈旧机器人处理。修复了 compose#9988

2.12.2

2022-10-21

更新

  • 更新了Docker Engine API以恢复与Linux打包所需的Golang 1.18的兼容性。拉取请求 compose#9940

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.12.2 发布页面

2.12.1

2022-10-21

安全

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.12.1 发布页面

2.12.0

2022-10-18

更新

  • CI 更新到文档仓库路径

  • 1.5.1 升级到 1.6.0升级到compose-go

  • 更新至 go 1.19.2 以解决 CVE-2022-2879、CVE-2022-2880、CVE-2022-41715

Bug fixes and enhancements

  • 添加了一个quiet选项,用于推送镜像时。修复了 compose#9089
  • 修复了port命令的错误提示信息,该信息之前可能会引起误解。拉取请求 compose#9909
  • 修复了一个错误,以防止Compose尝试删除不存在的容器时失败。修复由 compose#9896
  • 切换了GitHub问题模板表单

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.12.0 发布页面

2.11.2

2022-09-27

注意

  • 环境文件语法和插值的更新:参见 compose#9879
  • 在Compose v2中不支持通过.env文件设置DOCKER_HOST

更新

Bug修复和增强

  • 修复了一个错误,以防止在有效的环境变量值上出现“无效模板”错误。修复了 compose##9806, compose##9746, compose##9704, compose##9294
  • 修复了一个错误,确保使用来自docker compose build的新镜像。修复了 compose#9856
  • 修复了未设置DOCKER_DEFAULT_PLATFORM时的跨架构构建问题。修复了 compose#9864
  • 修复了使用depends_on时出现的间歇性冲突错误。修复了 compose#9014
  • 当入口点被覆盖时,清除了服务 CMD。修复了 compose#9622
  • 当未定义build.platforms时,配置默认的构建器导出。修复 compose#9856
  • 修复了一个错误,以保持平台定义,优先通过DOCKER_DEFAULT_PLATFORM或service.platform属性。修复 compose#9864
  • 移除了对.env文件中DOCKER_HOST的支持。修复了 compose#9210
  • 修复了一个错误,以确保在运行命令中覆盖入口点时服务命令的清洁性。修复了 compose#9622
  • 依赖项:修复了图遍历期间的竞争条件。修复了 compose#9014
  • CI 现在可以在 Windows 和 macOS 上运行,包括通过 Docker Desktop 进行的 E2E 测试
  • service.platform不是service.build.platforms的一部分时,添加了更多信息
  • GitHub 工作流安全加固

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.11.2 发布页面

2.11.1

2022-09-20

Bug修复和增强功能

  • 修复了一个bug,以在服务具有volumes_from时保持depends_on条件。修复了 compose#9843
  • 修复了一个bug,以在没有构建平台的情况下在构建期间保持服务级别定义的平台。修复 compose#9729
  • 修复了一个错误,以在没有提供构建平台时保持通过DOCKER_DEFAULT_PLATFORM定义的平台。修复了 compose#9853

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.11.1 发布页面

2.11.0

2022-09-14

更新

  • 依赖项升级:将 Golang 升级到 1.19.1
  • 依赖项升级:将 github.com/docker/go-units 从 0.4.0 升级到 0.5.0
  • 依赖项升级:将 github.com/cnabio/cnab-to-oci 从 0.3.6 升级到 0.3.7
  • 依赖项升级:将 go.opentelemetry.io/otel 从 1.9.0 升级到 1.10.0
  • 依赖项升级:将 github.com/AlecAivazis/survey/v2 从 2.3.5 升级
  • 依赖项升级:将 go.opentelemetry.io/otel 从 1.4.1 升级到 1.9.0
  • 依赖项升级:将compose-go从 1.5.0 升级到 1.5.1

错误修复和增强功能

  • 添加了平台构建。修复了 compose-spec#267
  • 日志现在过滤到当前Compose文件中的服务。修复了 compose#9801
  • 在拉取镜像时添加了改进的输出警告。修复了 compose#9820
  • 修复了一个错误,以确保在服务有依赖关系时正确捕获退出代码。修复了 compose#9778
  • 修复了带有--rmidown。修复了 compose#9655
  • 修复了在使用--no-interpolate选项时,docker-compose转换将$转换为$$的问题。修复了 compose#9160
  • 修复了build.go直接访问自定义标签导致崩溃的问题。参见 compose#9810
  • 将新加载的环境变量应用到"DockerCli"和"APIClient"。修复了 compose#9210
  • 仅尝试在compose start [services]上启动指定的服务。修复了 compose#9796 compose#9807
  • 为构建的镜像打标签,以便在down时可靠地清理。修复 compose#9655

如需完整的变更日志或更多信息,请查看 Compose repository 2.11.0 发布页面

2.10.2

2022-08-26

Bug修复和增强

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.10.2 发布页面

2.10.1

2022-08-24

更新

Bug修复和增强

  • 修复了当pull_policy未设置时跳过镜像拉取的问题。修复了 compose#9773.
  • 恢复了发布产物中的.sha256校验和文件。修复了 compose#9772.
  • 移除了使用 --exit-code-from 时显示退出代码的错误信息。修复了 compose#9782.
  • 修复了compose pull,即使本地存在镜像,如果tag=latest也会拉取镜像。
  • CI: 修复了校验和检查并恢复了单独的校验和文件。

如需完整的变更日志或更多信息,请查看 Compose repository 2.10.1 发布页面

2.10.0

2022-08-19

  • 将新加载的环境变量应用到DockerCliAPIClient。修复了 compose#9210
  • 增加了对 windows/arm64 和 linux/riscv64 的支持。

更新

  • 更新了Dockerfile语法至最新稳定版本,并重命名了文档的Dockerfile。
  • 依赖项更新:升级了BuildKit和docker/distribution。
  • 依赖项更新:将CI中使用的Docker CLI版本更新至v20.10.17。
  • 依赖更新:将 github.com/containerd/containerd 从 1.6.6 升级到 1.6.7.
  • 依赖项更新:将 github.com/containerd/containerd 从 1.6.7 升级到 1.6.8
  • 依赖项更新:升级到 Go 1.18.5。
  • 依赖项更新:将 github.com/cnabio/cnab-to-oci 从 0.3.5 升级到 0.3.6.

Bug 修复和功能增强

  • 将环境变量的优先级恢复为操作系统优先于.env文件。修复了 compose#9737.
  • 更新了使用字符串以保持一致性。
  • 在Windows上解决了环境变量不区分大小写的问题。修复了 compose#9431.
  • 修复了compose up,以便在发出停止信号时不会停止依赖容器。这保持了与v1行为的一致性。
  • 修复 compose#9696.
  • 修复了启动/重启/暂停/取消暂停的命令,以便如果从Compose文件运行,Compose模型也会被应用。修复了 compose#9705compose#9705
  • 移除了一些子命令帮助文本中的多余空白。
  • 修复了compose create,当命令行中的值配置为默认值时,不再覆盖服务的拉取策略。修复了 compose#9717
  • 过滤掉了“commandConn.Close- warning”消息。修复了 compose#8544.
  • 修复了up/start/run不等待被禁用的依赖项的问题。修复了 compose#9591.
  • compose kill上应用了Compose模型,添加了--remove-orphans选项。修复了 compose#9742
  • 修复了compose pull以避免多次拉取相同的镜像。修复了 compose#8768.
  • 将 golangci-lint 的版本固定为 v1.47.3,目前 v1.48.0 存在问题。

有关完整的变更日志,请查看 Compose 仓库 2.10.0 发布页面.

2.9.0

2022-08-7

重要

Compose v2.9.0 包含了对环境变量优先级的更改,这些更改已被撤销。我们建议使用 v2.10+ 以避免兼容性问题。

注意

此版本恢复了在Compose v2.8.0中引入的破坏性更改,这些更改由compose-go v1.3.0引入。

更新

错误修复和功能增强

  • 覆盖了父命令的PreRun代码,用于compose version。修复了 compose#9698
  • 修复了V2中的LinkLocalIPs。修复了 compose#9692
  • 链接到BUILDING.md以获取测试说明。修复 compose#9439.

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.9.0 发布页面

2.8.0

2022-07-29

重要

此版本通过compose-go v1.3.0引入了一个破坏性变更,并且这个 PR. 在此版本中,Docker Compose 使用-(破折号)而不是_(下划线)重新创建具有新名称的新资源(网络、卷、秘密、配置等),并尝试连接或使用这些新创建的资源,而不是现有的资源!

请改用 Compose v2.9.0 版本。

  • 引入了--pull标志,以允许强制拉取更新的服务镜像。修复了 compose#9451
  • 通过将gocritic添加到linters中提高了代码质量。

Bug fixes and enhancements

如需完整的变更日志或更多信息,请查看 Compose repository 2.8.0 发布页面

2.7.0

2022-07-20

  • 在构建步骤中添加了对环境机密的支持。修复了 compose#9606.

更新

Bug 修复和功能增强

  • 网络:防止了由于重复名称导致的问题。修复了 moby/moby#18864.
  • 修复了在compose upcompose down命令中关闭网络名称的问题。修复了 compose#9630.
  • 在运行compose up --wait时,为一次性容器使用了适当的依赖条件。修复了 compose#9606
  • 修复了环境变量扩展问题。
  • 在一致性检查中验证依赖的服务是否存在。修复 compose#8910.
  • 修复了环境值中的哈希使用问题。修复了 compose#9509.
  • Docker Build: 添加了修复以尊重经典构建器的依赖顺序。修复了 compose#8538.
  • 修复了由空字符串参数引起的崩溃问题。修复了 compose-switch#35.
  • 修复了启动/重启操作,以避免影响一次性容器。修复了 compose#9509.
  • 修复了当volumes_from目标为容器而非服务时保持容器引用的问题。修复了 compose#8874.
  • build.go: 添加了修复以初始化 CustomLabels 映射(如果为 nil)。
  • 在运行端到端测试之前,添加了新的目标来构建Compose二进制文件。
  • CI: 发布了工作流,用于在文档仓库上打开一个包含最新更改的PR。
  • e2e: 添加了ps的测试。
  • e2e: 拆分出暂停测试并添加更多案例。
  • e2e: 添加更多的启动/停止测试用例。

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.7.0 发布页面

2.6.1

2022-06-23

更新

  • 升级:compose-go v1.2.8.
  • 升级:buildx v0.8.2.
  • 依赖项升级:将 runc 升级 至 1.1.2
  • 依赖项升级:将 golang 升级至 1.18.3.
  • 依赖项升级:将compose-go升级至 v1.2.8.
  • 依赖项升级:将 github.com/theupdateframework/notary 从 0.6.1 升级到 0.7.0。
  • 依赖项升级:将 github.com/cnabio/cnab-to-oci 从 0.3.1-beta1 升级到 0.3.3。
  • 依赖项升级:将 github.com/hashicorp/go-version 从 1.3.0 升级到 1.5.0。
  • 依赖项升级:将 github.com/stretchr/testify 从 1.7.0 升级到 1.7.2。
  • 依赖项升级:将 github.com/docker/buildx 从 0.8.1 升级到 0.8.2。
  • 依赖项升级:将 github.com/AlecAivazis/survey/v2 从 2.3.2 升级到 2.3.5。
  • 依赖项升级:将 github.com/containerd/containerd 从 1.6.2 升级到 1.6.6。

Bug修复和增强

  • 添加了容器创建请求的链接。修复了 #9513.
  • 修复了compose run以仅启动直接依赖项。修复了 #9459.
  • 修复了在使用--no-deps选项时compose up出现的“服务未找到”错误。修复了 #9427
  • 修复了compose down以遵守COMPOSE_REMOVE_ORPHANS环境变量。修复了 #9562.
  • 修复了项目级别的绑定挂载卷。修复了 docker/for-mac#6317.
  • 修复了对属性 deploy.limits.cpusdeploy.limits.pids 的解析,以支持浮点数值。修复了 #9542#9501
  • 修复了compose ps输出以列出所有暴露的端口。修复了 #9257.
  • 修复了compose ps代码中的拼写错误。
  • 修复了docker compose以尊重--no-ansi,即使在请求了已弃用的选项时。
  • 修复了网络名称和网络ID可能存在的歧义。
  • e2e: 添加了ps的测试。
  • e2e: 将未解析的json转换为容器摘要。
  • e2e: 修复了子测试和阻止并行不安全的测试。
  • e2e: 将测试命令环境与系统环境隔离。
  • e2e: 修复了虚假的 ps 失败。
  • e2e: 确保所有compose命令独立兼容。
  • e2e: 改进了失败时的测试输出。

如需完整的变更日志或更多信息,请查看 Compose repository 2.6.1 发布页面

2.6.0

2022-05-30

  • 在构建部分添加了tags属性。在此属性中,除了在image属性中定义的标签外,还可以定义要应用于最终镜像的标签。
  • 添加了端到端测试,以确保环境变量优先级没有回归。
  • 添加了ddev的端到端测试。

更新

Bug修复和增强功能

  • 修复了compose up仅附加到项目中启用了配置文件的服务。修复了 #9286.
  • 修复了从多个服务拉取相同图像时的闪烁提示问题。修复了 #9469.
  • 修复了compose将.env文件导入到操作系统环境中,以允许通过此文件设置变量(如DOCKER_BUILDKIT)。修复了 #9345.
  • 修复了在本地失败的TestLocalComposeUp
  • 修复了本地运行 e2e-compose-standalone 的问题。

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.6.0 发布页面

2.5.1

2022-05-17

更新

  • 依赖项更新:将compose-go升级到1.2.5。

错误修复和增强功能

  • 修复了当使用'--env-file'声明相对路径时,项目工作目录绝对路径的解析问题。修复了 docker/for-mac#6229.
  • 修复了compose down:现在拒绝所有参数以明确使用方式。修复了 #9151
  • 修复了 compose down:如果没有任何内容需要移除,现在会以状态=0退出。修复了 #9426.
  • 修复了在使用--no-log-prefix选项时日志输出行中打印的多余空格。修复了 #9464.
  • 阐明了当传递多个compose文件时默认工作目录是什么。
  • cp 命令:默认行为是复制到服务的所有容器。

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.5.1 发布页面

2.5.0

2022-04-29

Bug修复和增强功能

  • 修复了在指定-p标志时使用compose down命令导致的崩溃问题。修复了 #9353.
  • 将新创建的项目作为输入以启动服务(docker compose up)。修复了 #9356
  • 在docker-compose文件中声明的包含服务作为隐式依赖项。修复了 #9301.
  • 添加了更改 docker compose pull 命令以遵守定义的策略:1) 跳过配置为 pull_policy: never 的服务,2) 忽略那些已有镜像且配置为 pull_policy: missing 的服务。修复 #3660.
  • 为了防止down恐慌,不再忽略从资源构建项目时的错误。修复了 #9383.
  • 强制项目名称为小写。修复了 #9378.
  • 增加了对构建时秘密的支持。修复了 #6358.
  • 更改了compose-go以允许(重新)构建卷字符串,以便在无法使用挂载时由引擎bind API使用。修复了 #9380
  • 提供了checksums.txt文件,并添加了--binary以允许在不同操作系统中进行验证。修复了 #9388
  • 添加了更改,以便检查本地拉取的镜像ID并持久化到com.docker.compose.image。修复了 #9357
  • 修复了关于IPAM网关设置的问题。修复了 #9330.
  • 为docker compose二进制文件添加了对ppc64le架构的支持。
  • 修复了--no-TTY文档中的搜索/替换拼写错误。

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.5.0 发布页面

2.4.1

2022-04-04

Bug fixes and enhancements

  • 在使用此标志运行容器时,将--rm flag值原样传递给Docker CLI。修复了 #9314.
  • 在通过docker compose up命令构建镜像时,已将SSH配置添加到构建选项中。修复了 #9338
  • 添加了对容器的检查,以确定是否需要TTY。现在运行指定了tty:true的服务会显示控制台输出。修复了 #9288.

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.4.1 发布页面

2.4.0

2022-04-1

更新

  • 依赖项更新:将buildx升级到v0.8.1,以修复处理构建上下文扫描错误时可能出现的panic。

Bug修复和增强

  • 将交互式标志 '-i' 从 Compose CLI 传递到 Docker 以运行 exec 命令。修复了 #9315.
  • Compose 命令现在会考虑 COMPOSE_PROJECT_NAME 环境变量的值。修复了 #9316.
  • 修复了compose down命令在没有启动任何服务或没有资源可删除的情况下执行时返回错误的问题。错误是由于命令尝试删除一个不存在的默认网络引起的。修复了 #9333.
  • 引入了对构建部分中cache_fromcache_tono_cachepull属性的支持。这些属性允许强制从源代码完全重建,并检查注册表中使用的镜像。这些变化为将来为compose build(或等效)命令提供--no-cache--pull选项奠定了基础。
  • 引入了对CLI和Compose文件中build命令的--ssh标志的支持。修复了 #7025.
  • 修复了--ssh标志描述中的拼写错误。相关于 #7025.
  • 将Kubernetes依赖项固定为与buildx中相同的版本。
  • 将交互式标志从Compose CLI传递到Docker CLI以运行exec命令。
  • 修复了并行运行的启动-停止端到端测试中的竞争条件。
  • 删除了关于过时警告的代码。
  • 供应商: github.com/containerd/containerd v1.6.2. 包含对CVE-2022-24769的修复(不影响我们的代码库)。

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.4.0 发布页面

2.3.4

2022-03-25

  • 引入了更改,使用来自docker/cli的RunExec和RunStart来处理所有交互式/tty/*终端逻辑。

已移除

  • 移除一个没有候选的容器现在会产生警告而不是错误。修复了 #9255.
  • 从运行和执行命令的 -i 和 -t 选项中移除了“已弃用”的提及。这些选项默认开启并正在使用中。修复了 #9229.
  • 从--filter标志中删除了“已弃用”的提及,以保持与其他命令的一致性。
  • 移除了需要获取原始compose.yaml文件来运行'docker compose kill'的需求。

更新

  • 依赖项更新:将 github.com/spf13/cobra 从 1.3.0 升级到 1.4.0。Cobra 库不再需要 Viper 及其所有间接依赖项 查看 cobra 的发布页面.
  • 依赖项更新:将buildx从v0.7.1升级到v0.8.0。

Bug修复和增强

  • 恢复了 'compose up -d' 的行为,即使用更新后的内容重新创建 compose 文件镜像的容器。修复了 #9259.
  • Docker compose --status, --filter 和 --format 标志文档更新。
  • docker compose down -v 现在不会移除外部卷和网络,这是根据选项的预期和文档行为。每当指定项目时,现在也用于强制down仅移除compose.yaml文件中列出的资源。 修复 #9172, #9145.
  • 更改了Compose API参考文档的自动化流程,以捕捉代码与文档之间的差异。

如需完整的变更日志或更多信息,请查看 Compose 仓库 2.3.4 发布页面

其他版本

(2022年3月8日至2022年4月14日)

对于1.29.2之后和2.3.4之前的版本,请查看 Compose仓库发布页面

1.29.2

(2021-05-10)

杂项

  • 移除了在up命令中使用docker-compose的提示。

  • requirements-indirect.txt中将py升级到1.10.0

1.29.1

(2021-04-13)

错误

  • 修复了Windows构建上的无效处理程序警告。

  • 修复了配置哈希以在IPC模式更新时触发容器重新创建。

  • 修复了placement.max_replicas_per_node的转换映射。

  • 在构建时移除了额外的扫描建议。

1.29.0

(2021-04-06)

特性

  • docker-compose config中添加了配置文件过滤器。

  • 添加了一个depends_on条件以等待服务成功完成。

杂项

  • 在构建时添加了图像扫描消息。

  • 更新了--no-ansi的警告信息,提到--ansi never作为替代方案。

  • 将docker-py升级到5.0.0。

  • 将PyYAML升级到5.4.1。

  • 将python-dotenv升级到0.17.0。

1.28.6

(2021-03-23)

Bug 修复

  • 使--env-file相对于当前工作目录。使用--env-file设置的环境文件路径现在相对于当前工作目录,并覆盖项目目录中的默认.env文件。

  • 通过更新Compose模式修复了缺失的服务属性storage_opt

  • 修复了构建extra_hosts列表格式。

  • 移除了exec上的额外错误信息。

杂项

  • compose.ymlcompose.yaml添加到默认文件名列表中。

1.28.5

(2021-02-26)

Bugs

  • 修复了在通过SSH客户端进行shell操作时出现的OpenSSL版本不匹配错误(通过升级到包含修复的docker-py 4.4.4版本)。

  • 向本地构建器添加了缺失的构建标志:platformisolationextra_hosts

  • 移除了本地构建的信息消息。

  • 修复了当服务日志驱动程序设置为'none'时的日志获取错误。

1.28.4

(2021-02-18)

Bug 修复

  • 通过将docker-py升级到4.4.3修复了SSH端口解析问题。

杂项

  • 将Python升级到3.7.10。

1.28.3

(2021-02-17)

Bug 修复

  • 修复了当SSH主机名包含前导's'/'h'时的解析问题,并移除了隐藏错误的quiet选项(通过将docker-py升级到4.4.2)。

  • 修复了--no-log-prefix选项的键错误。

  • 修复了服务配置文件的错误CLI环境变量名称:COMPOSE_PROFILES 而不是 COMPOSE_PROFILE

  • 修复了fish的自动补全功能。

杂项

  • 将cryptography升级到3.3.2。

  • 移除了日志驱动过滤器。

有关此版本中修复的PR和问题列表,请参阅 Compose 1.28.3.

1.28.2

(2021-01-26)

Bug 修复

  • 恢复到Python 3.7版本以支持Linux静态构建

  • docker-compose logs|up --no-log-prefix 添加 bash 自动补全

杂项

  • CI 设置更新

1.28.0

(2021-01-20)

特性

  • 通过设备请求增加了对NVIDIA GPU的支持。

  • 增加了对服务配置文件的支持。

  • 更改了通过本地SSH客户端连接到Docker CLI的SSH连接方法。设置COMPOSE_PARAMIKO_SSH=1环境变量以启用旧行为。

  • 添加了一个标志来禁用日志前缀。

  • 添加了一个用于ANSI输出控制的标志。

  • Docker Compose 现在在构建镜像时使用原生的 Docker CLI 的 build 命令。设置 COMPOSE_DOCKER_CLI_BUILD=0 环境变量可以禁用此功能。

Bug 修复

  • 默认情况下,将parallel_pull=True

  • 恢复了在非集群模式下配置的警告。

  • 在定义project_dir时考虑了--file

  • 修复了在compose up上的服务附加错误。

杂项

  • 增加了使用指标。

  • 已与COMPOSE规范同步模式。

  • 改进了缺失必需环境变量的失败报告。

  • attrs升级到20.3.0。

  • more_itertools升级到8.6.0。

  • cryptograhy 升级到 3.2.1。

  • cffi升级到1.14.4。

  • virtualenv 升级到 20.2.2。

  • bcrypt升级到3.2.0。

  • 将GitPython升级到3.1.11。

  • docker-py 升级到 4.4.1。

  • 将Python升级到3.9。

  • Linux: 将Debian基础镜像从stretch升级到buster(Python 3.9所需)。

  • macOS: 将OpenSSL从1.1.1g升级到1.1.1h,并将Python从3.7.7升级到3.9.0。

  • 将PyInstaller升级到4.1。

  • 放宽了对基础镜像到最新次要版本的限制。

  • 更新了README文件。

1.27.4

(2020-09-24)

Bug 修复

  • 移除了绑定挂载的路径检查。

  • 修复了端口渲染以输出非v1的长格式语法。

  • 已向Docker套接字地址添加协议。

1.27.3

(2020-09-16)

Bug 修复

  • docker-compose config上合并了max_replicas_per_node

  • 修复了docker-compose config中的depends_on序列化问题。

  • 修复了当某些容器未在docker-compose up上运行时的缩放问题。

  • local驱动程序的driver_opts.device启用了相对路径。

  • cpus 字段允许的字符串。

1.27.2

(2020-09-10)

Bug 修复

  • 修复了docker-compose run容器附加的bug。

1.27.1

(2020-09-10)

Bug 修复

  • 修复了在指定service.scaledocker-compose run的问题。

  • 允许driver属性用于外部网络,作为Swarm网络传播问题的临时解决方案。

  • 将新的内部模式版本固定为3.9作为默认值。

  • 保留了在Compose文件中配置的版本号。

1.27.0

(2020-09-07)

特性

  • 合并了2.x和3.x的Compose格式,并与COMPOSE_SPEC模式对齐。

  • 实现了ipc的服务模式。

  • 在容器模式下传递了COMPOSE_PROJECT_NAME环境变量。

  • 使run的行为与up相同。

  • 当设置了COMPOSE_DOCKER_CLI_BUILD环境变量时,在docker-compose run上使用docker build

  • 使用docker-py默认的API版本进行引擎查询(auto)。

  • 解析了构建时的network_mode

Bug 修复

  • 在不需要构建时忽略构建上下文路径验证。

  • 通过将docker-py升级到4.3.1修复了浮点数到字节的转换问题。

  • 修复了设置部署部分时的比例错误。

  • 修复了setup.py中的docker-py版本问题。

  • 修复了实验性构建失败检测。

  • 修复了上下文传播到Docker CLI的问题。

杂项

  • docker-py升级到4.3.1。

  • tox升级到3.19.0。

  • virtualenv升级到20.0.30。

  • 添加了用于文档同步的脚本。

1.26.2

(2020-07-02)

Bug 修复

  • 在通过pip安装时,强制要求docker-py的最低版本为4.2.2。

1.26.1

(2020-06-30)

特性

  • docker-py从4.2.1升级到4.2.2。

Bug 修复

  • 在使用pip安装时,强制要求docker-py的最低版本为4.2.1。

  • 修复了非Docker端点的上下文加载问题。

1.26.0

(2020-06-03)

特性

  • 添加了docker context支持。

  • 添加了缺失的测试依赖项 ddtsetup.py

  • 为命令up添加了--attach-dependencies,用于附加到依赖项。

  • 允许与COMPOSE_COMPATIBILITY环境变量的兼容性选项。

  • Pytest升级到5.3.4版本,并增加了与新版本的兼容性重构。

  • OpenSSL从1.1.1f升级到1.1.1g。

  • certifi从2019.11.28升级到2020.4.5.1。

  • docker-py 从 4.2.0 升级到 4.2.1。

Bug 修复

  • 正确转义的值来自 env_files

  • 与上游(docker/cli)同步compose-schemas。

  • 移除了执行命令中的None条目。

  • 添加了distribution包以获取分发信息。

  • 添加了python-dotenv来委托.env文件处理。

  • 当输出被管道传输到另一个命令时,停止根据终端宽度调整输出。

  • version属性格式错误时显示错误消息。

  • 修复了当DOCKER_HOST为远程时的HTTPS连接。

1.25.5

(2020-04-10)

特性

  • 将OpenSSL从1.1.1d升级到1.1.1f。

  • 添加了Compose版本3.8。

    • Limited service scale to the size specified by the field deploy.placement.max_replicas_per_node.

1.25.4

(2020-02-03)

Bug 修复

  • 修复了CI脚本,强制最低MacOS版本为10.11。

  • 修复了在环境文件中没有值的键的docker-compose exec问题。

1.25.3

(2020-01-23)

Bug 修复

  • 修复了CI脚本以强制使用Python3进行编译。

  • 在发布页面上更新了二进制文件的sha256。

1.25.2

(2020-01-20)

新功能

  • Docker Compose 现在允许使用 COMPOSE_COMPATIBILITY 环境变量来设置兼容性选项。

Bug 修复

  • 修复了当version字段设置为无效值时导致Docker Compose崩溃的问题。现在,当在版本字段中使用无效值时,Docker Compose会显示错误消息。

  • 修复了在终端外运行命令时导致Docker Compose渲染消息不正确的问题。

1.25.1

(2020-01-06)

Bug修复

  • 在使用APIError解释创建并启动容器之前,将其解码为Unicode。

  • Docker Compose 会丢弃值为 Nonecom.docker.compose.filepaths 标签。这种情况通常发生在标签来自标准输入时。

  • 添加了OS X二进制文件作为目录,以解决由macOS Catalina二进制扫描引起的启动时间缓慢问题。

  • 在运行script/run/run.sh时,在容器模式下传递了HOME环境变量。

  • Docker Compose 现在会报告无法拉取但需要构建的镜像。

1.25.0

(2019-11-18)

新功能

  • 通过将CLICOLOR环境变量更改为0来将no-colors设置为true。

  • 已将工作目录、配置文件和环境文件添加到服务标签中。

  • 添加了ARM构建依赖项。

  • 添加了BuildKit支持(使用DOCKER_BUILDKIT=1COMPOSE_DOCKER_CLI_BUILD=1)。

  • 将Paramiko升级到版本2.6.0。

  • 添加了以下标签:docker-compose:latest, docker-compose:-alpine, 和 docker-compose:-debian.

  • docker-py 提升到版本 4.1.0。

  • 增强了对requests的支持,最高支持到2.22.0版本。

  • 移除了build:cache_from上的空标签。

  • Dockerfile 增强功能,提供了为 Alpine Linux 生成 libmusl 二进制文件的功能。

  • 仅拉取无法构建的镜像。

  • scale 属性现在接受 0 作为值。

  • docker-compose build命令添加了一个--quiet选项和一个--no-rm选项。

  • docker-compose config命令添加了一个--no-interpolate选项。

  • 将MacOS构建的OpenSSL从1.1.0升级到1.1.1c

  • 增加了对docker-compose.yml文件的credential_spec配置选项的支持。

  • 无需拉取图像即可解析摘要。

  • 升级了pyyaml到版本4.2b1

  • 将尝试删除不存在的镜像时的严重性降低为warning

  • 在可能的情况下,强制使用改进的API字段来处理项目事件。

  • 更新了setup.py以适应现代的pypi/setuptools,并移除了pandoc依赖。

  • 移除了不再需要的 Dockerfile.armhf

Bug 修复

  • 使容器服务颜色确定化,包括移除红色。

  • 修复了非ASCII字符错误(仅限Python 2)。

  • 将图像大小调整为十进制格式,以与Docker CLI保持一致。

  • tty 通过 Python POSIX 支持获取的大小。

  • 修复了相同文件extends的优化问题。

  • 修复了stdin_open

  • 修复了在使用up --no-start选项时遇到的--remove-orphans被忽略的问题。

  • 修复了docker-compose ps --all命令。

  • 修复了depends_on依赖重新创建的行为。

  • 修复了docker-compose build --memory命令的bash自动补全功能。

  • 修复了执行docker-compose exec命令时出现的误导性环境变量警告。

  • 修复了parallel_execute_watch function中的失败检查。

  • 修复了在拉取镜像后发生的竞态条件。

  • 修复了重复挂载点的错误(现在会显示配置错误消息)。

  • 修复了networks部分的合并问题。

  • Compose 容器默认始终连接到 stdin

  • 修复了在容器不可用时,docker-compose start命令中失败服务的显示问题。

1.24.1

(2019-06-24)

此版本包含了一些小的改进和错误修复。

1.24.0

(2019-03-28)

特性

  • 增加了使用ssh协议连接到Docker Engine的支持。

  • 添加了一个--all标志到docker-compose ps,以在命令的输出中包含已停止的一次性容器。

  • ps --all|-a 添加了 bash 自动补全功能。

  • 增加了对credential_spec的支持。

  • bashzsh的自动补全中,为docker build的选项添加了--parallel

Bug 修复

  • 修复了一个错误,该错误导致在尝试从私有注册表拉取镜像时,Compose 未能正确处理某些有效的凭证助手。

  • 修复了在容器创建之前执行docker-compose start输出误导性的问题。

  • Compose 将不再接受来自环境文件的变量名中的空格。 这与 Docker CLI 的行为一致。

  • 如果服务尝试在卷部分声明重复的挂载点,Compose 现在将报告配置错误。

  • 修复了Compose容器化版本中的一个问题,该问题阻止用户在由runexec启动的交互式会话期间写入stdin。

  • run启动的一次性容器不再采用服务的重启策略,而是设置为永不重启。

  • 修复了一个导致某些容器事件未出现在docker-compose events命令输出中的问题。

  • 缺失的镜像将不再阻止docker-compose down命令的执行。现在会显示一个警告来代替。

  • 强制为macOS CI使用virtualenv版本。

  • 修复了当网络配置为None时Compose文件的合并问题。

  • 通过启用pyinstaller中的bootloader_ignore_signals修复了CTRL+C问题。

  • docker-py版本提升至3.7.2以修复SSH和代理配置问题。

  • 修复了发布脚本和发布文档中的一些拼写错误。

1.23.2

(2018-11-28)

Bug 修复

  • 恢复了1.23.0版本中对由docker-compose up创建的容器名称附加随机字符串的更改,该更改导致了可寻址性问题。

    注意

    docker-compose run创建的容器将继续使用随机生成的名称,以避免在并行运行期间发生冲突。

  • 修复了在Windows上尝试构建时,某些dockerfile路径会意外失败的问题。

  • 修复了在Windows上构建上下文URL时无法构建的错误。

  • 修复了一个导致runexec命令在某些情况下无法接受--host参数值的错误。

  • 修复了服务定义中storage_optisolation键的覆盖未正确应用的问题。

  • 修复了一个错误,其中一些无效的Compose文件在验证期间会引发未捕获的异常。

1.23.1

(2018-11-01)

Bug 修复

  • 修复了一个在使用早于1.23.0版本的Compose创建的容器时可能导致意外崩溃的错误。

  • 修复了--project-directory标志的行为会根据使用的子命令而变化的问题。

1.23.0

(2018-10-30)

重要提示

在这个版本中,由Compose创建的容器的默认命名方案已从__更改为___,其中是一个随机生成的十六进制字符串。请在升级前确保更新依赖旧命名方案的脚本。

功能

  • 容器在崩溃后重新启动的日志现在将出现在uplogs命令的输出中。

  • 添加了--hash选项到docker-compose config命令中,允许用户打印每个服务配置的哈希字符串,以便于滚动更新。

  • 添加了--parallel标志到docker-compose build命令中,允许Compose同时构建最多5个镜像。

  • 现在,pull 命令在并行拉取多个镜像时也会报告状态/进度。

  • 对于具有多个名称的图像,Compose现在将尝试匹配images命令输出中服务配置中存在的名称。

Bug 修复

  • 修复了同一服务的并行run命令由于名称冲突而失败的问题。

  • 修复了在Windows客户端上路径长度超过260个字符会导致docker-compose build失败的问题。

  • 修复了一个在尝试使用Docker Desktop for Windows挂载/var/run/docker.sock时会导致失败的bug。

  • --project-directory 选项现在由 Compose 用来确定在哪里查找 .env 文件。

  • docker-compose build 在尝试使用由 gcloud 凭证助手 提供的凭证拉取镜像时不再失败。

  • 修复了docker-compose up中的--exit-code-from选项,使其始终报告实际的退出代码,即使被监视的容器不是退出的原因。

  • 修复了一个问题,该问题在某些情况下会阻止重新创建服务,其中卷会映射到与该镜像的Dockerfile中声明的卷相同的挂载点。

  • 修复了一个导致使用多个网络的哈希配置不一致的错误,该错误导致一些服务不必要地重启。

  • 修复了一个错误,该错误会导致名称包含一个或多个点字符的服务在变量替换时失败。

  • 修复了在使用容器化版本的Compose时的管道处理问题。

  • 修复了一个导致Compose文件中external: false条目在docker-compose config输出中被打印为external: true的错误。

  • 修复了一个错误,即在没有定义镜像键的服务上发出docker-compose pull命令会导致Compose崩溃。

  • 卷和绑定现在按照它们在服务定义中声明的顺序挂载。

杂项

  • zsh 自动补全脚本已更新,增加了新的选项,并且不再在需要服务名称的地方建议容器名称。

1.22.0

(2018-07-17)

新功能

Compose 格式版本 3.7

  • 引入了docker-compose.yml规范的3.7版本。 此版本需要Docker Engine 18.06.0或更高版本。

  • 在部署配置中添加了对rollback_config的支持

  • 在服务配置中添加了对init参数的支持

  • 在服务、网络、卷、密钥和配置配置中添加了对扩展字段的支持

Compose 格式版本 2.4

  • 在服务、网络和卷配置中添加了对扩展字段的支持

Bug 修复

  • 修复了一个在设置DOCKER_DEFAULT_PLATFORM时阻止使用某些Compose文件进行部署的错误

  • Compose 将不再尝试使用无效的起始字符创建容器或卷

  • 修复了几个导致Compose命令无法与使用旧版本Compose创建的容器正常工作的错误

  • 修复了在源文件包含可附加网络时,启用--compatibility-mode标志的docker-compose config输出问题

  • 修复了一个错误,该错误阻止了gcloud凭据存储在与UNIX上的Compose二进制文件一起使用时正常工作

  • 修复了一个在Windows上尝试通过非HTTPS TCP连接操作时导致连接错误的bug

  • 修复了一个在Windows上如果Dockerfile位于构建上下文的子目录中会导致构建失败的bug

  • 修复了在Windows上无法正确解析UTF-8 BOM编码的Compose文件的问题

  • 修复了在使用docker-compose build时处理.dockerignore文件中的双通配符(**)模式的问题

  • 修复了一个导致旧版.dockercfg文件中的认证值被忽略的错误

  • docker-compose build 将不再尝试创建以无效字符开头的镜像名称

1.21.2

(2018-05-03)

Bug 修复

  • 修复了IPAM配置中ip_range属性无法通过验证的错误

1.21.1

(2018-04-27)

Bug 修复

  • 在1.21.0版本中,我们引入了对项目名称进行清理的更改,以便在资源名称中内部使用。这导致在操作一个已部署的应用程序时出现问题,该应用程序的名称因此发生了变化。此版本正确地检测到使用“旧版”命名约定的资源。

  • 修复了在使用绝对路径指定上下文中的Dockerfile时,尽管路径有效但仍会失败的问题。

  • 修复了一个错误,该错误导致IPAM选项更改被错误检测,从而阻止了重新部署。

  • v2文件的验证现在正确地检查了IPAM配置的结构。

  • 改进了对Windows上凭据存储的支持,以包括使用.exe以外的扩展名的二进制文件。有效扩展名列表由PATHEXT环境变量的内容决定。

  • 修复了一个错误,该错误导致Compose在部署过程中生成包含重复元素的无效绑定,从而在Engine级别触发错误。

1.21.0

(2018-04-11)

新功能

Compose 文件版本 2.4

  • 引入了docker-compose.yml规范的2.4版本。 此版本需要Docker Engine 17.12.0或更高版本。

  • 在服务定义中添加了对platform参数的支持。如果提供了该参数,在执行服务构建时也会使用该参数。

Compose 文件版本 2.2 及以上

  • 在服务定义中添加了对cpu_rt_periodcpu_rt_runtime参数的支持(仅限2.x版本)。

Compose 文件版本 2.1 及以上

  • 在服务定义中添加了对cpu_period参数的支持(仅限2.x版本)。

  • 在服务构建配置中添加了对isolation参数的支持。 此外,如果未定义build.isolation参数,则服务定义中的isolation参数也用于构建。(仅限2.x版本)

所有格式

  • docker-compose exec中添加了对--workdir标志的支持。

  • docker-compose build中添加了对--compress标志的支持。

  • docker-compose pull 现在默认并行执行。你可以使用 --no-parallel 标志选择退出。 --parallel 标志现在已被弃用,并将在未来的版本中移除。

  • 项目名称中的破折号和下划线不再被去除。

  • docker-compose build 现在支持使用构建上下文之外的 Dockerfile。

Bug 修复

  • Compose 现在会检查卷的配置是否与远程卷匹配,如果检测到不匹配,则会报错。

  • 修复了一个导致Compose在尝试并行创建多个一次性容器时引发意外错误的bug。

  • 修复了在使用docker-machine configexecrun命令生成TLS标志时参数解析的错误。

  • 修复了一个错误,其中使用空默认值的变量替换(例如 ${VAR:-})会打印出错误的警告。

  • 当Compose文件的编码与系统不匹配时,提高了弹性。鼓励用户尽可能使用UTF-8。

  • 修复了一个错误,其中Swarm中的外部覆盖网络会被Compose错误地识别为不存在,从而中断了其他有效的操作。

1.20.0

(2018-03-20)

新功能

Compose 文件版本 3.6

  • 引入了docker-compose.yml规范的3.6版本。 此版本必须与Docker Engine 18.02.0或更高版本一起使用。

  • 在卷映射中添加了对tmpfs.size属性的支持

Compose 文件版本 3.2 及以上

  • 现在可以在不指定服务的情况下使用--build-arg选项 在docker-compose build

Compose 文件版本 2.3

  • 在服务定义中添加了对device_cgroup_rules的支持

  • 在长格式卷映射中添加了对tmpfs.size属性的支持

  • 现在可以在不指定服务的情况下使用--build-arg选项 在docker-compose build

所有格式

  • 在顶层的 docker-compose 命令中添加了一个 --log-level 选项。 接受的值为 debug, info, warning, error, critical。 默认的日志级别是 info

  • docker-compose run 现在允许用户取消容器的入口点

  • ~/.docker/config.json文件中找到的代理配置现在会为Compose创建的容器填充环境和构建参数

  • 添加了--use-aliases标志到docker-compose run,表示应该使用服务配置中声明的网络别名来运行容器

  • docker-compose pull添加了--include-deps标志

  • docker-compose run 现在在接收到 SIGHUP 信号时会杀死并移除正在运行的容器。

  • docker-compose ps 现在显示容器的健康状态(如果可用)

  • execrunup命令添加了长格式的--detach选项

Bug 修复

  • 修复了.dockerignore处理,特别是关于绝对路径和最后一行优先规则的问题

  • 修复了在使用 Docker For Mac 时,Compose 在连接到 Engine 时会进行昂贵的 DNS 查找的问题

  • 修复了1.19.0版本中引入的一个错误,该错误导致Compose未遵循默认证书路径

  • 修复了一个错误,即Compose在构建上下文的一部分时错误地检查符号链接的目标是否可访问

  • 修复了一个错误,其中包含空白行的.dockerignore文件导致Compose在Windows上出错

  • 修复了一个错误,其中--tls*--host选项在交互式runexec命令中不会被正确遵守

  • security_opt配置中的seccomp:条目现在正确地将文件内容发送到引擎

  • ANSI输出对于updown操作不应再影响错误的行

  • 改进对非Unicode区域设置的支持

  • 修复了当用户的主目录名称包含非ASCII字符时在Windows上发生的崩溃问题

  • 修复了在构建过程中由于构建上下文中文件的mtime值为负而导致的错误

  • 修复了流式传输构建进度时的编码错误

1.19.0

(2018-02-07)

重大变更

  • 在UNIX平台上,交互式的runexec命令现在默认要求客户端安装docker CLI。要恢复到之前的行为,用户可以设置COMPOSE_INTERACTIVE_NO_CLI环境变量。

新功能

Compose 文件版本 3.x

  • config 命令的输出现在应该以更准确的方式合并来自多个 Compose 文件的 deploy 选项

Compose 文件版本 2.3

  • 在服务定义中添加了对runtime选项的支持

Compose 文件版本 2.1 及以上

  • 增加了对${VAR:?err}${VAR?err}变量插值语法的支持,用于指示必填变量

Compose 文件版本 2.x

  • 添加了priority键到服务网络映射中,允许用户定义指定服务连接到每个网络的顺序

所有格式

  • up命令添加了--renew-anon-volumes(简写为-V),防止Compose从以前的容器中恢复匿名卷的数据

  • 增加了同时并行操作的数量限制,这应该可以防止服务器资源的意外耗尽。默认值为64,并且可以使用COMPOSE_PARALLEL_LIMIT环境变量进行配置。

  • 添加了--always-recreate-deps标志到up命令中,以强制重新创建依赖服务及其依赖所有者

  • 添加了COMPOSE_IGNORE_ORPHANS环境变量,以忽略孤儿容器检测并抑制警告

  • 添加了COMPOSE_FORCE_WINDOWS_HOST环境变量,以强制Compose将卷定义解析为Docker主机是Windows系统的情况,即使Compose本身当前在UNIX上运行。

  • Bash 补全现在应该能够更好地区分运行、停止和暂停的服务

Bug 修复

  • 修复了一个错误,该错误会导致build命令在构建上下文包含不可读文件或FIFO对象时报告连接错误。这些文件类型现在将被正确处理。

  • 修复了围绕交互式run/exec会话的各种问题。

  • 修复了一个错误,该错误在同时使用环境和CLI标志设置TLS选项时,会导致部分配置被忽略

  • 修复了Compose忽略DOCKER_TLS_VERIFY环境变量的错误

  • 修复了一个错误,其中up中的-d--timeout标志被错误地标记为不兼容

  • 修复了一个错误,即如果与先前容器关联的镜像已被删除,重新创建服务会失败

  • 修复了一个错误,该错误在尝试重新创建相关服务时,更新挂载目标会导致Compose中断

  • 修复了一个错误,其中在使用版本3.2的Compose文件中使用扩展语法声明的tmpfs卷会被错误地创建为匿名卷。

  • 修复了一个类型转换错误会打印堆栈跟踪而不是优雅退出的bug

  • 修复了一些与Unicode处理相关的错误

  • 如果依赖服务的配置没有更改,依赖服务不再与依赖所有者一起重新创建

  • 在Compose文件中增加了对labels字段的更好验证。包含标量类型(数字、布尔值)的标签值现在会自动转换为字符串。

1.18.0

(2017-12-18)

新功能

Compose 文件版本 3.5

  • 引入了docker-compose.yml规范的3.5版本。 此版本需要Docker Engine 17.06.0或更高版本

  • 在构建配置中添加了对shm_size参数的支持

  • 在服务定义中添加了对isolation参数的支持

  • 增加了对网络、密钥和配置定义的自定义名称的支持

Compose 文件版本 2.3

  • 在构建配置中添加了对extra_hosts的支持

  • 增加了对卷条目的长语法的支持,如之前在3.2格式中引入的那样。使用此语法将创建挂载而不是卷。

Compose 文件版本 2.1 及以上

  • 在服务定义中添加了对oom_kill_disable参数的支持 (仅限2.x版本)

  • 增加了对网络定义自定义名称的支持(仅限2.x版本)

所有格式

  • 从环境中插值的值现在将在非字符串字段中使用时转换为适当的类型。

  • docker-compose run中添加了对--label的支持

  • docker-compose down中添加了对--timeout的支持

  • docker-compose build中添加了对--memory的支持

  • 在服务定义中设置stop_grace_period现在也会设置容器的stop_timeout

Bug 修复

  • 修复了Compose仍然根据旧版引擎行为处理服务主机名的问题,导致包含点的主机名被截断

  • 修复了一个错误,其中Compose认为X-Y:Z语法的端口无效

  • 修复了CLI日志记录导致重复消息和不优雅输出出现的问题

  • 修复了在使用多个Compose文件时导致stop_grace_period被忽略的问题

  • 修复了一个在使用未标记镜像时导致docker-compose images崩溃的错误

  • 修复了一个错误,其中有效的${VAR:-}语法会导致Compose出错

  • 修复了一个错误,其中使用UTF-8 BOM的env_file条目被错误地读取

  • 修复了一个错误,该错误会导致缺少的密钥文件在其位置生成一个空目录

  • 修复了CLI错误处理程序中的字符编码问题

  • 为健康检查中的test字段添加了验证

  • 为IPAM配置中的subnet字段添加了验证

  • 在使用服务定义中的长语法时,添加了对volumes属性的验证

  • CLI 现在明确禁止在 docker-compose up 中同时使用 -d--timeout

1.17.0

(2017-11-01)

新功能

Compose 文件版本 3.4

  • 引入了docker-compose.yml规范的3.4版本。 此版本需要与Docker Engine 17.06.0或更高版本一起使用。

  • 在构建配置中添加了对cache_fromnetworktarget选项的支持

  • update_config部分增加了对order参数的支持

  • 增加了在使用name参数时设置卷定义中的自定义名称的支持

Compose 文件版本 2.3

  • 在构建配置中添加了对shm_size选项的支持

Compose 文件版本 2.x

  • 增加了对扩展字段(x-*)的支持。也适用于v3.4文件

所有格式

  • 新增了--no-start选项到up命令中,允许用户创建所有资源(网络、卷、容器)而不启动服务。 create命令已被弃用,推荐使用这个新选项

Bug 修复

  • 修复了一个错误,其中extra_hosts值会被扩展文件覆盖而不是合并在一起

  • 修复了一个错误,该错误会导致在验证v3.2文件时阻止在服务卷定义中使用consistency字段

  • 修复了一个错误,该错误会导致在期望唯一项的配置字段包含重复项时崩溃

  • 修复了一个错误,其中使用不同模式的挂载覆盖会创建重复条目,而不是覆盖原始条目

  • 修复了一个错误,其中声明为列表的构建标签无法正确解析

  • 修复了一个错误,即如果文件包含自定义命名的外部卷,docker-compose config 的输出在某些版本中会无效

  • 在使用不受支持的文件版本在Windows上发出构建命令时,改进了错误处理

  • 修复了在同时运行up命令时,有时会创建同名网络的问题。

1.16.0

(2017-08-31)

新功能

Compose 文件版本 2.3

  • 引入了docker-compose.yml规范的2.3版本。 此版本要求与Docker Engine 17.06.0或更高版本一起使用。

  • 在构建配置中添加了对target参数的支持

  • 在健康检查配置中添加了对start_period参数的支持

Compose 文件版本 2.x

  • 在服务定义中添加了对blkio_config参数的支持

  • 增加了在卷定义中使用name参数设置自定义名称的支持(不适用于2.0版本)

所有格式

  • 添加了新的CLI标志--no-ansi以在输出中抑制ANSI控制字符

Bug 修复

  • 修复了一个嵌套extends指令未正确解析导致“文件未找到”错误的bug

  • 修复了.dockerignore解析中的几个问题

  • 修复了启用TTY服务的日志打印不正确并导致MemoryError异常的问题

  • 修复了一个在Python 3上打印应用程序日志时有时会被UnicodeEncodeError异常中断的错误

  • docker-compose config 输出中的 $ 字符现在已正确转义

  • 修复了一个运行docker-compose top时有时会因未捕获的异常而失败的bug

  • 修复了一个错误,其中带有--parallel标志的docker-compose pull在失败时会返回0退出代码

  • 修复了deploy.resources中的键未被验证的问题

  • 修复了docker-compose config输出中的logging选项被设置为null(无效值)的问题

  • 修复了当镜像来自使用显式端口号的私有仓库时,docker-compose images命令的输出问题

  • 修复了当端口定义使用0作为发布端口值时docker-compose config的输出问题

1.15.0

(2017-07-26)

新功能

Compose 文件版本 2.2

  • 在构建配置中添加了对network参数的支持。

Compose 文件版本 2.1 及以上

  • 服务定义中的pid选项现在支持service:值。

  • 在服务定义中添加了对storage_opt参数的支持。 此选项不适用于v3格式

所有格式

  • 添加了--quiet标志到docker-compose pull,抑制进度输出

  • 对CLI输出的一些改进

Bug 修复

  • 通过--volume标志指定的卷现在补充了服务定义中声明的卷,而不是替换它们

  • 修复了一个错误,该错误在使用多个Compose文件时会取消设置在Compose文件内定义的scale值。

  • 修复了Compose未遵守config.json文件中credHelpers条目的问题

  • 修复了一个在使用多个Compose文件与端口声明时,在Python 3环境中会导致失败的bug

  • 修复了一个错误,该错误会导致用户环境中存在的一些代理相关选项阻止Compose运行

  • 修复了一个问题,即如果原始文件使用了YN值,docker-compose config的输出将无效

  • 修复了在Windows Engine上阻止对先前创建的堆栈执行up操作的问题。

1.14.0

(2017-06-19)

新功能

Compose 文件版本 3.3

  • 引入了docker-compose.yml规范的3.3版本。 此版本需要与Docker Engine 17.06.0或更高版本一起使用。 注意:credential_specconfigs键仅适用于Swarm服务, 并且将被Compose忽略

Compose 文件版本 2.2

  • 在服务定义中添加了以下参数:cpu_count, cpu_percent, cpus

Compose 文件版本 2.1

  • 增加了对构建标签的支持。此功能在2.2和3.3格式中也可用。

所有格式

  • docker-compose exec中添加了-u作为--user标志的简写

  • Compose 文件和远程网络之间的标签差异现在将打印警告,而不是阻止重新部署。

Bug 修复

  • 修复了一个在运行docker-compose run命令时,服务的依赖项被重新调整为其默认比例的错误

  • 修复了一个错误,当使用docker-compose rm命令并带有--stop标志时,如果提供了一个要删除的服务列表,该命令没有正确执行。

  • 修复了一个在使用多个Compose文件时,构建部分中的cache_from会被忽略的错误。

  • 修复了一个在使用多个Compose文件时无法将同一端口绑定到不同IP的错误。

  • 修复了一个错误,即如果覆盖文件具有.yaml扩展名,Compose将不会识别这些文件

  • 修复了Windows引擎上的一个错误,该错误会导致网络被错误地标记为需要重新创建

  • 修复了一个错误,该错误会导致在某些版本的Python 3中声明端口的服务崩溃

  • 修复了一个错误,其中docker-compose config的输出有时会包含无效的端口定义

1.13.0

(2017-05-02)

重大变更

  • docker-compose up 现在会将服务的缩放重置为其默认值。 您可以使用新引入的 --scale 选项来指定自定义的缩放值

新功能

Compose 文件版本 2.2

  • 引入了docker-compose.yml规范的2.2版本。此版本要求与Docker Engine 1.13.0或更高版本一起使用。

  • 在服务定义中添加了对init的支持。

  • 在服务定义中添加了对scale的支持。配置的值可以通过在docker-compose up中使用--scale标志来覆盖。对于此文件格式,scale命令被禁用

Compose 文件版本 2.x

  • 在网络定义的ipam部分增加了对options的支持

Bug 修复

  • 修复了一个错误,即通过-f选项提供给compose的路径未正确解析

  • 修复了一个错误,其中端口部分中的ext_ip::target_port表示法被错误地标记为无效

  • 修复了在使用-d标志时,exec命令有时不会将控制权返回给终端的问题

  • 修复了一个错误,该错误导致v3.2文件的config命令输出中缺少密钥

  • 修复了在没有互联网连接时docker-compose会挂起的问题

  • 修复了通过-f标志传递的包含Unicode字符的路径导致Compose崩溃的问题

  • 修复了当Compose文件包含外部密钥时,docker-compose config输出无效的问题

  • 修复了一个在使用--exit-code-fromup时,如果Compose安装在Python 3环境中会失败的bug

  • 修复了一个错误,该错误在使用tmpfsvolumes组合重新创建容器时会导致配置状态无效

1.12.0

(2017-04-04)

新功能

Compose 文件版本 3.2

  • 引入了docker-compose.yml规范的3.2版本

  • 在服务的build部分增加了对cache_from的支持

  • 在服务定义中添加了对新扩展端口语法的支持

  • 在服务定义中添加了对新扩展卷语法的支持

Compose 文件版本 2.1

  • 在服务定义中添加了对pids_limit的支持

Compose 文件版本 2.0 及以上

  • 添加了--volumes选项到docker-compose config,该选项列出了为该项目声明的命名卷

  • 在服务定义中添加了对mem_reservation的支持(仅限2.x版本)

  • 在服务定义中添加了对dns_opt的支持(仅限2.x版本)

所有格式

  • 新增了一个docker-compose images命令,用于列出当前项目容器使用的镜像

  • 添加了一个--stop(简写为-s)选项到docker-compose rm,该选项在删除运行中的容器之前先停止它们

  • 添加了一个--resolve-image-digests选项到docker-compose config中,该选项将每个服务的镜像版本固定为一个永久的摘要

  • 添加了一个--exit-code-from SERVICE选项到docker-compose up。当使用时,docker-compose将在任何容器退出时退出,并返回指定服务的退出代码。

  • docker-compose pull添加了一个--parallel选项,该选项允许同时拉取多个服务的镜像

  • docker-compose build添加了一个--build-arg选项

  • 添加了一个--volume (简写为-v)选项到docker-compose run,用于声明要挂载的运行时卷。

  • 添加了一个--project-directory PATH选项到docker-compose,这将影响项目的路径解析

  • 当在docker-compose up中使用--abort-on-container-exit时,导致中止的容器的退出代码将是docker-compose up命令的退出代码

  • 用户现在可以配置他们想要使用的路径分隔符字符,通过使用COMPOSE_PATH_SEPARATOR环境变量来分隔COMPOSE_FILE环境值。

  • 增加了对端口映射中单个端口的端口范围支持,例如 8000-8010:80

Bug 修复

  • docker-compose run --rm 现在在执行后移除匿名卷, 与 docker run --rm 的行为一致。

  • 修复了一个错误,其中包含端口列表的覆盖文件会导致引发TypeError

  • 修复了一个错误,该错误导致docker-compose config的输出中缺少deploy键。

  • 修复了一个在扩展服务时有时会重复使用过时容器的错误

  • 修复了一个错误,即如果项目声明了匿名卷,docker-compose config 的输出将无效

  • 变量插值现在在Compose文件的secrets部分中正确发生

  • secrets 部分现在正确地显示在 docker-compose config 的输出中

  • 修复了一个错误,该错误导致无法检测到某些网络属性与之前创建的网络之间的变化。

  • 修复了一个错误,当尝试写入已关闭的管道时,docker-compose 会崩溃

  • 修复了Compose在与命令行TLS标志结合使用时无法识别COMPOSE_TLS_VERSION值的问题

1.11.2

(2017-02-17)

Bug 修复

  • 修复了一个阻止密钥配置正确加载的错误

  • 修复了一个错误,当配置文件包含秘密定义时,docker-compose config 命令会失败

  • 修复了在某些Linux发行版上Compose会加载并使用过时版本的requests库的问题

  • 修复了构建文件夹内的套接字类型文件会导致docker-compose在尝试构建该服务时崩溃的问题

  • 修复了在.dockerignore文件中未识别递归通配符模式**的问题。

1.11.1

(2017-02-09)

Bug 修复

  • 修复了Compose解析器无法识别3.1文件格式为有效的错误

1.11.0

(2017-02-08)

新功能

Compose 文件版本 3.1

  • 引入了docker-compose.yml规范的3.1版本。此版本需要Docker Engine 1.13.0或更高版本。它引入了对secrets的支持。有关更多信息,请参阅文档。

Compose 文件版本 2.0 及以上

  • 引入了docker-compose top命令,该命令显示由Compose管理的不同服务正在运行的进程。

Bug 修复

  • 修复了一个错误,该错误会导致在扩展定义健康检查字典的服务时,docker-compose 出错。

  • 修复了在使用多个Compose文件时,服务定义中的pid条目被忽略的问题。

1.10.1

(2017-02-01)

Bug 修复

  • 修复了在运行Compose时,存在旧版本的docker-py包会导致意外崩溃的问题

  • 修复了在使用多个compose文件时,healthcheck依赖项会丢失的问题

  • 修复了一些导致config命令输出无效的问题

  • 修复了在v3 Compose文件中添加卷标签会导致错误的问题

  • 修复了Windows上的一个问题,其中包含Unicode字符的构建上下文路径被错误编码

  • 修复了一个错误,该错误导致在容器停止或重启时,Compose 在流式传输日志时偶尔会崩溃

1.10.0

(2017-01-18)

新功能

Compose 文件版本 3.0

  • 引入了docker-compose.yml规范的3.0版本。此版本要求与Docker Engine 1.13或更高版本一起使用,并专门设计用于与docker stack命令一起工作。

Compose 文件版本 2.1 及以上

  • 现在可以在服务定义中使用healthcheck参数进行健康检查配置

  • 现在可以设置容器依赖,以便在使用depends_on声明时等待健康检查通过。请参阅文档以获取更新的语法。

    注意

    此功能将不会移植到版本3的Compose文件中。

  • 在服务定义中添加了对sysctls参数的支持

  • 在服务定义中添加了对userns_mode参数的支持

  • Compose 现在为其创建的网络和卷添加了识别标签

Compose 文件版本 2.0 及以上

  • 在服务定义中添加了对stop_grace_period选项的支持。

Bug 修复

  • 现在在Windows上,彩色输出可以正常工作。

  • 修复了一个在Windows上交互模式下,docker-compose run无法设置链接别名的错误。

  • 由Compose创建的网络现在总是可附加的 (Compose文件v2.1及以上版本)。

  • 修复了一个错误,其中COMPOSE_CONVERT_WINDOWS_PATHS的假值(0false,空值)被错误地解释为真。

  • 修复了一个错误,即在Windows上某些.dockerignore模式中的正斜杠未被正确解析

1.9.0

(2016-11-16)

重大变更

  • 在Windows上使用Compose与Docker Toolbox/Machine时,卷路径默认不再从C:\Users转换为/c/Users样式。要重新启用此转换以使您的卷继续工作,请设置环境变量COMPOSE_CONVERT_WINDOWS_PATHS=1。Docker for Windows的用户不受影响,不需要设置此变量。

新功能

  • Windows 平台现在支持 docker-compose rundocker-compose exec 的交互模式。此功能需要系统中存在 docker 二进制文件才能正常工作。

  • 引入了docker-compose.yml规范的2.1版本。此版本要求与Docker Engine 1.12或更高版本一起使用。

    • Added support for setting volume labels and network labels in docker-compose.yml.
    • Added support for the isolation parameter in service definitions.
    • Added support for link-local IPs in the service networks definitions.
    • Added support for shell-style inline defaults in variable interpolation. The supported forms are ${FOO-default} (fall back if FOO is unset) and ${FOO:-default} (fall back if FOO is unset or empty).
  • 在服务定义中添加了对group_addoom_score_adj参数的支持。

  • 在网络定义中添加了对internalenable_ipv6参数的支持。

  • Compose 现在默认在 Windows 上使用 npipe 协议。

  • 覆盖logging配置现在将正确合并options映射,如果driver值不冲突。

Bug 修复

  • 修复了与Windows上npipe协议支持相关的几个错误。

  • 修复了在Windows Server上使用Docker时Windows路径被错误转换的问题。

  • 修复了一个错误,其中空的restart值有时会导致异常被抛出。

  • 修复了包含Unicode字符的服务日志有时会导致错误发生的问题。

  • 修复了一个错误,即在检索环境变量中的Unicode值时,有时会引发Unicode异常。

  • 修复了Compose错误检测覆盖网络配置不匹配的问题。

1.8.1

(2016-09-22)

Bug 修复

  • 修复了一个错误,该错误导致使用凭证存储的用户无法访问他们的私人图像。

  • 修复了一个错误,该错误导致使用身份令牌进行身份验证的用户无法访问他们的私人图像。

  • 修复了一个错误,其中docker配置文件中的HttpHeaders条目会导致Compose在尝试构建镜像时崩溃。

  • 修复了与卷绑定声明中Windows路径处理相关的几个错误。

  • 修复了Compose在尝试从引擎读取流式响应时有时会崩溃的错误。

  • 修复了在流式传输容器日志时遇到API错误时Compose会崩溃的问题。

  • 修复了Compose错误地尝试输出未被Engine的API处理的驱动程序的日志的问题。

  • 修复了一个错误,其中来自docker-machine config命令的选项不会被Compose正确解释。

  • 修复了一个在同时运行大量服务时,连接到Docker Engine有时会失败的bug。

  • 修复了在运行bundle命令时,Compose有时会打印误导性建议消息的问题。

  • 修复了在项目初始化阶段,Compose 无法正确处理连接错误的 bug。

  • 修复了一个在遇到连接超时时会出现误导性错误的bug。

1.8.0

(2016-06-14)

重大变更

  • 正如1.7.0版本中所宣布的,docker-compose rm 现在默认会移除由 docker-compose run 创建的容器。

  • 现在在服务上设置entrypoint会清空镜像上设置的任何默认命令(即用于构建它的Dockerfile中的任何CMD指令)。这使得它与docker run--entrypoint标志保持一致。

新功能

  • 添加了docker-compose bundle,这是一个构建捆绑文件的命令,用于Docker 1.12中的新Docker Stack命令。

  • 添加了docker-compose push,这是一个将服务镜像推送到注册表的命令。

  • Compose 现在支持使用 COMPOSE_TLS_VERSION 环境变量来指定与 Docker Engine 交互的自定义 TLS 版本。

Bug 修复

  • 修复了一个错误,即当项目根目录是一个目录时,Compose 会错误地尝试读取 .env

  • docker-compose run -e VAR 现在将 VAR 从 shell 传递到容器,就像 docker run -e VAR 一样。

  • 改进了在涉及多个服务子键时多个compose文件的配置合并。

  • 修复了一个错误,该错误导致包含Windows驱动器的卷映射有时会被错误解析。

  • 修复了在Windows环境中主机根目录的卷映射会被错误解析的问题。

  • 修复了一个错误,当指定外部网络时,docker-compose config 会输出无效的 Compose 文件。

  • 修复了一个问题,未设置的buildargs会被分配一个包含'None'的字符串,而不是预期的空值。

  • 修复了Windows上在接收输入之前不会显示是/否提示的错误。

  • 修复了一个在Windows上尝试使用docker-compose exec时,如果没有使用-d选项会退出并显示堆栈跟踪的错误。目前这仍然会失败,但应该会优雅地失败。

  • 修复了一个在docker-compose up过程中出现错误时,在进程结束时显示不相关堆栈跟踪的bug。

  • docker-compose createdocker-compose start 在出现问题时显示更具描述性的错误信息。

1.7.1

(2016-05-04)

Bug 修复

  • 修复了一个错误,其中docker-compose config对于v1文件的输出会是一个无效的配置文件。

  • 修复了一个bug,其中docker-compose config不会检查链接的有效性。

  • 修复了docker-compose help无法按预期输出可用命令和通用选项列表的问题。

  • 修复了在使用docker-compose logs时按服务过滤不会应用于新创建服务的问题。

  • 修复了一个在使用Compose与Python 3时,在启动阶段未更改的服务有时会被重新创建的bug。

  • 修复了在启动阶段遇到的API错误不会被Compose识别为失败状态的问题。

  • 修复了一个错误,该错误导致在非Windows平台上由于未定义的异常名称而引发NameError。

  • 修复了一个错误,该错误会导致有时会安装错误版本的docker-py与Compose一起。

  • 修复了一个bug,即docker-machine config default输出的主机值不会被docker-compose命令行识别为有效选项。

  • 修复了Compose在读取由Swarm集群广播的事件时有时会意外退出的问题。

  • 更正了文档中关于.env文件位置的声明,该文件确实是从当前目录读取的,而不是与Compose文件在同一位置。

1.7.0

(2016-04-13)

重大变更

  • docker-compose logs 默认不再跟随日志输出。它现在 匹配 docker logs 的行为,并在打印当前日志后退出。使用 -f 来获取旧的默认行为。

  • 布尔值不再允许作为Compose文件中映射的值(对于键environmentlabelsextra_hosts)。以前这是一个警告。布尔值应该被引用,以便它们成为字符串值。

新功能

  • Compose 现在会在其运行的目录中查找一个 .env 文件,并读取其中定义的所有环境变量,如果这些变量尚未在 shell 环境中设置。这使您可以轻松地为 Compose 文件中使用的变量或任何 COMPOSE_*DOCKER_* 变量设置默认值。

  • docker-compose updocker-compose down添加了一个--remove-orphans标志,用于移除从Compose文件中删除的服务的容器。

  • docker-compose rm添加了一个--all标志,以包括由docker-compose run创建的容器。这将成为下一个Compose版本的默认行为。

  • 增加了对docker客户端使用的所有相同TLS配置标志的支持:--tls, --tlscert, --tlskey等。

  • Compose 文件现在支持 tmpfsshm_size 选项。

  • docker-compose run添加了--workdir标志

  • docker-compose logs 现在显示在它启动后创建的新容器的日志。

  • COMPOSE_FILE 环境变量现在可以包含多个文件,由主机系统的标准路径分隔符分隔(在Mac/Linux上是:,在Windows上是;)。

  • 您现在可以在将服务连接到网络时使用ipv4_addressipv6_address选项指定静态IP地址。

  • 添加了--follow--timestamp--tail标志到docker-compose logs命令中。

  • docker-compose updocker-compose start 现在将尽可能并行启动容器。

  • docker-compose stop 现在以反向依赖顺序停止容器,而不是一次性全部停止。

  • 添加了--build标志到docker-compose up,以强制构建一个新镜像。如果未使用该标志时自动构建镜像,现在会显示警告。

  • 添加了docker-compose exec命令,用于在运行的容器中执行进程。

Bug 修复

  • docker-compose down 现在会移除由 docker-compose run 创建的容器。

  • 当使用 tty 时,在 up 期间发生超时时,会显示更合适的错误信息。

  • 修复了docker-compose down中的一个错误,该错误在某些资源已被移除时会中止操作。

  • 修复了一个网络别名更改不会触发服务重新创建的bug。

  • 修复了一个错误,该错误会在卷已经存在时打印关于创建新卷的日志消息。

  • 修复了一个错误,其中中断up不会总是关闭容器。

  • 修复了一个在v1 Compose文件格式中扩展服务时,log_optlog_driver未正确传递的错误。

  • 修复了一个错误,其中构建参数的空值会导致文件验证失败。

1.6.2

(2016-02-23)

  • 修复了一个错误,该错误导致连接到启用TLS的Docker引擎时会因证书验证错误而失败。

1.6.1

(2016-02-23)

Bug 修复

  • 修复了一个多次重新创建容器会导致新容器在没有先前卷的情况下启动的错误。

  • 修复了一个错误,即Compose会将未设置的环境变量的值设置为空字符串,而不是没有值的键。

  • 当Compose需要更新版本的Docker API时,提供更好的错误信息。

  • 添加一个缺失的配置字段 network.aliases,它允许为服务设置网络范围的别名。

  • 修复了一个错误,即run不会启动depends_on中列出的服务。

  • 修复了一个在使用扩展或多个Compose文件时,networksnetwork_mode未合并的错误。

  • 修复了服务别名的一个错误,其中短容器ID别名仅包含10个字符,而不是之前版本中使用的12个字符。

  • 在创建新的命名卷时添加了缺失的日志消息。

  • 修复了一个在使用extends或多个Compose文件时,build.args未合并的错误。

  • 修复了在使用空值或不正确类型代替映射时配置验证的一些错误。

  • 修复了一个错误,即没有contextbuild部分会显示堆栈跟踪而不是有用的验证消息。

  • 通过仅在服务使用匿名容器卷时,将容器亲和性设置为服务容器的前一个实例,提高了与swarm的兼容性。以前,亲和性总是在所有容器上设置。

  • 修复了某些driver_opts的验证问题,如果使用数字而不是字符串会导致错误。

  • 对Compose容器安装选项使用的run.sh脚本进行了一些改进。

  • 修复了up --abort-on-container-exit中的一个错误,该错误导致Compose会退出,但不会停止其他容器。

  • 修正了在映射中使用布尔值作为值时打印的警告信息。

1.6.0

(2016-01-15)

主要功能

  • Compose 1.6 引入了一种新的 docker-compose.yml 格式,允许你在 Compose 文件中定义网络和卷以及服务。它还对一些配置选项的结构进行了一些更改。

    你不必使用它 - 你现有的Compose文件将在Compose 1.6上完全像今天一样运行。

    查看 升级指南 以获取完整详情。

  • 网络支持已退出实验状态,是启用容器之间通信的推荐方式。

    如果您使用新的文件格式,您的应用程序将使用网络功能。如果您还没有准备好,只需保持您的Compose文件不变,它将继续以相同的方式工作。

    默认情况下,您不需要配置任何网络。实际上,使用Compose进行网络配置比使用链接所需的配置更少。请参阅网络指南了解如何使用它。

    在Compose 1.5中引入的实验性标志--x-networking--x-network-driver已被移除。

  • 如果您正在使用新的文件格式,您现在可以向构建传递参数:

    build:
      context: .
      args:
        buildno: 1
    
  • 如果您使用新的文件格式,您现在可以同时指定buildimage键。docker-compose build将构建镜像并使用您指定的名称进行标记,而docker-compose pull将尝试拉取它。

  • 有一个新的events命令用于从应用程序中监控容器事件,类似于docker events。这是一个很好的基础,可以在Compose之上构建工具,以便在特定事件发生时执行操作,例如容器的启动和停止。

  • 有一个新的depends_on选项用于指定服务之间的依赖关系。这强制执行启动顺序,并确保当你在一个有依赖关系的服务上运行docker-compose up SERVICE时,这些依赖服务也会启动。

新功能

  • 添加了一个新命令config,该命令在插值变量、解析相对路径以及合并多个文件和extends后验证并打印Compose配置。

  • 添加了一个新命令 create 用于创建容器而不启动它们。

  • 添加了一个新命令 down,用于在一个命令中停止并移除由 up 创建的所有资源。

  • 增加了对cpu_quota配置选项的支持。

  • 增加了对stop_signal配置选项的支持。

  • 如果未修改任何容器,命令 startrestartpauseunpause 现在将以错误状态码退出。

  • 添加了一个新的--abort-on-container-exit标志到up,该标志使得up在第一个容器退出时停止所有容器并退出。

  • 移除了对FIG_FILEFIG_PROJECT_NAME的支持,并且不再将fig.yml作为默认的Compose文件位置。

  • 移除了migrate-to-labels命令。

  • 移除了--allow-insecure-ssl标志。

Bug 修复

  • 修复了一个验证错误,该错误阻止了在expose字段中使用一系列端口。

  • 修复了一个验证错误,该错误阻止了在entrypoint字段中使用包含重复项的数组。

  • 修复了一个导致ulimits在与extends一起使用时被忽略的错误。

  • 修复了一个阻止在extra_hosts中使用ipv6地址的错误。

  • 修复了一个导致在从多个Compose文件中包含时忽略extends的错误。

  • 修复了在Compose文件中定义容器卷时出现的错误警告。

  • 修复了一个阻止uplogs强制关闭行为的错误。

  • 修复了一个导致在使用默认网络驱动程序时,None 被打印为网络驱动程序名称的错误。

  • 修复了一个错误,即使用dnsdns_search的字符串形式会导致错误。

  • 修复了一个错误,即当容器处于重启状态时,会被报告为“Up”。

  • 修复了当DOCKER_CERT_PATH未正确设置时出现的令人困惑的错误信息。

  • 修复了一个错误,当容器使用非标准日志驱动程序(或根本没有)时,附加到容器会失败。

1.5.2

(2015-12-03)

  • 修复了一个错误,该错误破坏了与extends一起使用environmentenv_file的功能,并导致没有值的环境键具有None值,而不是来自主机环境的值。

  • 修复了1.5.1版本中的一个回归问题,该问题导致在重新创建容器时错误地引发了关于卷的警告。

  • 修复了一个阻止构建使用DockerfileADD 的错误

  • 修复了docker-compose restart中的一个错误,该错误阻止了它启动已停止的容器。

  • 修复了SIGTERM和SIGINT的处理,以正确停止容器

  • 添加支持使用URL作为build的值

  • 改进了expose选项的验证

1.5.1

(2015-11-12)

  • --force-rm选项添加到build中。

  • 在Compose文件中为服务添加ulimit选项。

  • 修复了一个错误,当服务从使用image更改为使用build时,up会报错“服务需要构建”。

  • 修复了一个在某些终端上可能导致并行操作输出不正确的错误。

  • 修复了一个错误,该错误在更改volumes_from的模式时阻止了容器的重新创建。

  • 修复了1.5.0版本中的一个回归问题,其中非utf-8的unicode字符会导致uplogs崩溃。

  • 修复了1.5.0版本中的一个回归问题,该问题导致在与docker守护进程通信时由于HTTP超时而命令失败时,Compose会使用成功退出状态码。

  • 修复了1.5.0版本中的一个回归问题,其中name被接受为一个有效的服务选项,这将覆盖服务的实际名称。

  • 当使用 --x-networking 时,Compose 不再将主机名设置为容器名称。

  • 当使用 --x-networking 时,Compose 只有在至少有一个容器使用网络时才会创建默认网络。

  • uplogs期间打印日志时,每行后刷新输出缓冲区,以防止缓冲问题隐藏日志。

  • 如果容器的某个依赖项正在被创建,则重新创建该容器。 以前,只有在容器的依赖项已经存在并且也在被重新创建时,才会重新创建容器。

  • 当Compose文件中的volume被忽略并被前一个容器的容器卷掩盖时,添加一个警告。

  • 在没有终端的情况下运行时,改进pull的输出。

  • 在使用多个Compose文件时,在尝试合并它们之前,请先验证每个文件。以前无效的文件会导致不有用的错误。

  • 允许在environment服务选项的键中使用破折号。

  • 通过将文件名包含在错误信息中,改进验证错误信息。

1.5.0

(2015-11-03)

重大变更

随着Compose文件中引入变量替换支持,任何在command:entrypoint:字段中使用环境变量($VAR${VAR})的Compose文件将会出现问题。

以前这些值是在容器内插值的,使用来自容器环境的值。在Compose 1.5.0中,这些值将在主机上插值,使用来自主机环境的值。

要将Compose文件迁移到1.5.0版本,请使用额外的$来转义变量(例如:$$VAR$${VAR})。请参阅 https://github.com/docker/compose/blob/8cc8e61/docs/compose-file.md#variable-substitution

主要功能

新功能

  • 你现在可以选择性地传递一个模式给volumes_from。例如, volumes_from: ["servicename:ro"]

  • 由于Docker现在允许您创建具有名称的卷,您可以在docker-compose.yml中通过名称引用这些卷。例如,volumes: ["mydatavolume:/data"]将在容器内的路径/data挂载名为mydatavolume的卷。

    如果volumes中的条目的第一个组件以./~开头,它将被视为路径,并在必要时执行相对路径的扩展。否则,它将被视为卷名并直接传递给Docker。

    了解更多关于命名卷和卷驱动器的信息: https://github.com/docker/docker/blob/244d9c33/docs/userguide/dockervolumes.md

  • docker-compose build --pull 指示 Compose 在构建之前为每个 Dockerfile 拉取基础镜像。

  • docker-compose pull --ignore-pull-failures 指示 Compose 在无法拉取单个服务的镜像时继续执行,而不是中止。

  • 你现在可以在docker-compose.yml中使用ipc选项来指定一个IPC命名空间。

  • docker-compose run创建的容器现在可以使用--name标志来命名。

  • 如果您使用 pip 安装 Compose 或将其用作库,它现在可以与 Python 3 一起使用。

  • image 现在支持镜像摘要(除了ID和标签之外)。例如, image: "busybox@sha256:38a203e1986cf79639cfb9b2e1d6e773de84002feea2d4eb006b52004ee8502d"

  • ports 现在支持端口范围。例如,

    ports:
      - "3000-3005"
      - "9000-9001:8000-8001"
    
  • docker-compose run 现在支持一个 -p|--publish 参数,类似于 docker run -p,用于将特定端口发布到主机。

  • docker-compose pausedocker-compose unpause 已经实现, 类似于 docker pausedocker unpause

  • 当使用extends从同一Compose文件中的另一个服务复制配置时,可以省略file选项。

  • Compose 可以作为 Docker 镜像安装和运行。这是一个实验性功能。

Bug 修复

  • Docker守护程序支持的所有log_driver选项值现在也由Compose支持。

  • docker-compose build 现在可以成功地在 Swarm 集群上运行。

1.4.2

(2015-09-22)

  • 修复了1.4.1版本中的一个回归问题,该问题会导致在没有-d选项的情况下运行docker-compose up时立即退出。

1.4.1

(2015-09-10)

Bug 修复

  • 一些配置更改(特别是对linksvolumes_fromnet的更改)没有正确触发容器重新创建,作为docker-compose up的一部分。
  • docker-compose up 显示了所有服务的日志,而不仅仅是指定的服务。
  • 具有自定义容器名称的容器在日志中显示为service_number,而不是它们的自定义容器名称。
  • 在扩展服务时,有时即使配置没有更改,容器也会被重新创建。

1.4.0

(2015-08-04)

  • 默认情况下,docker-compose up 现在只会重新创建那些自创建以来配置已更改的服务的容器。这应该会显著加快许多应用程序的速度。

    在Compose 1.3.0中引入此功能的实验性--x-smart-recreate标志已被移除,并且添加了一个--force-recreate标志,用于当您想要重新创建所有内容时。

  • Compose 的几个命令 - scale, stop, killrm - 现在可以并行地对多个容器执行操作,而不是按顺序执行,这将使大型应用程序运行得更快。

  • 你现在可以使用container_name为服务的容器指定一个自定义名称。由于Docker容器名称必须是唯一的,这意味着你不能将服务扩展到超过一个容器。

  • 使用extends时,您不再需要指定file选项 - 它将默认为当前文件。

  • 服务名称现在可以包含点、破折号和下划线。

  • Compose 现在可以从标准输入读取 YAML 配置,而不是从文件读取,通过指定 - 作为文件名。这使得动态生成配置变得更加容易:

    $ echo 'redis: {"image": "redis"}' | docker-compose --file - up
    
  • 有一个新的docker-compose version命令,它打印有关Compose捆绑依赖项的扩展信息。

  • docker-compose.yml 现在支持 log_opt 以及 log_driver,允许您向服务的日志驱动程序传递额外的配置。

  • docker-compose.yml 现在支持 memswap_limit,类似于 docker run --memory-swap

  • 当使用volumes选项挂载卷时,您现在可以传入守护进程支持的任何模式,而不仅仅是:ro:rw。例如,SELinux用户可以传入:z:Z

  • 你现在可以在docker-compose.yml中使用volume_driver选项指定一个自定义的卷驱动,就像docker run --volume-driver一样。

  • 已修复一个错误,该错误导致Compose无法从提供普通(未加密)HTTP的私有注册表中拉取镜像。之前用于解决此问题的--allow-insecure-ssl标志已被弃用,现在不再有效。

  • 已修复一个错误,即如果构建依赖于私有Hub镜像或私有注册表中的镜像,docker-compose build 会失败。

  • 修复了一个错误,该错误会导致在Docker守护程序尚未完成删除容器的情况下,Compose会崩溃。

  • 修复了两个错误,其中Compose有时会因为“重复绑定挂载”错误而失败,或者如果docker-compose.yml中指定的卷路径带有尾部斜杠,则无法将卷附加到容器。

感谢 @mnowster, @dnephin, @ekristen, @funkyfuture, @jeffk 和 @lukemarsden!

1.3.3

(2015-07-15)

回归修复

  • 当优雅地停止容器时,Compose 将超时设置为 0,实际上每次都会强制发送 SIGKILL 信号。
  • Compose 有时会崩溃,这取决于从 Docker API 返回的容器数据的格式。

1.3.2

(2015-07-14)

Bug 修复

  • 当在旧版本的Compose上运行docker-compose run创建了一次性容器时,docker-compose run会因名称冲突而失败。如果你周围有这种类型的剩余容器,Compose现在会显示一个错误,并告诉你如何删除它们。
  • Compose 没有读取在新位置创建的 Docker 认证配置文件,~/docker/config.json,因此针对私有仓库的认证会失败。
  • 当容器附加了伪终端时,其在docker-compose up中的输出会被截断。
  • docker-compose up --x-smart-recreate 在镜像标签更新时有时会失败。
  • docker-compose up 有时会创建两个具有相同数字后缀的容器。
  • docker-compose rmdocker-compose ps 有时会列出不属于当前项目的服务(尽管没有错误地删除容器)。
  • 一些 docker-compose 命令在传入无效的服务名称时不会显示错误。

感谢 @dano, @josephpage, @kevinsimper, @lieryan, @phemmer, @soulrebel 和 @sschepens!

1.3.1

(2015-06-21)

Bug 修复

  • docker-compose build 在构建之前总是会尝试拉取基础镜像。
  • docker-compose help migrate-to-labels 失败并出现错误。
  • 如果没有指定网络模式,Compose 会将其设置为 "bridge",而不是允许 Docker 守护进程使用其配置的默认网络模式。

1.3.0

(2015-06-18)

重要说明

  • 此版本包含重大更改,运行应用程序之前,您需要删除或迁移现有的容器 - 详情请参阅 安装文档的升级部分

  • Compose 现在需要 Docker 1.6.0 或更高版本。

改进

  • Compose 现在使用容器标签而不是名称来跟踪容器。这使得 Compose 更快且更容易与您自己的工具集成。

  • Compose 在重新创建服务容器时不再使用“中间容器”。这使得 docker-compose up 更简单且更能抵抗失败。

新功能

  • docker-compose up 有一个实验性的新行为:它只会为在docker-compose.yml中配置发生变化的服务重新创建容器。这最终将成为默认行为,但现在你可以尝试一下:

      $ docker-compose up --x-smart-recreate
    
  • 当在项目的子目录中调用时,docker-compose 现在会向上遍历父目录,直到找到 docker-compose.yml

docker-compose.yml中添加了几个新的配置键:

  • dockerfile,如docker build --file,允许你指定一个替代的Dockerfile与build一起使用。
  • labels,类似于docker run --labels,允许您向容器添加自定义元数据。
  • extra_hosts,类似于docker run --add-host,允许您向容器的/etc/hosts文件中添加条目。
  • pid: host, 例如 docker run --pid=host, 允许你重用与主机相同的PID命名空间。
  • cpuset,类似于docker run --cpuset-cpus,允许你指定允许执行的CPU。
  • read_only,类似于docker run --read-only,允许你将容器的文件系统挂载为只读。
  • security_opt,类似于docker run --security-opt,允许你指定 安全选项
  • log_driver,类似于docker run --log-driver,允许您指定一个 log driver

Bug 修复

  • docker-compose run 的输出有时会被截断,特别是在 Jenkins 下运行时。
  • docker-compose.yml中更改卷配置后,服务的卷有时不会更新。
  • 针对第三方注册表的身份验证有时会失败。
  • docker-compose run --rm 如果服务有 restart 策略,将无法移除容器。
  • docker-compose scale 如果服务在主机上暴露了特定的端口号,它将拒绝将服务扩展到超过1个容器。
  • Compose 将拒绝创建具有相同主机路径的多个卷条目。

感谢 @ahromis, @albers, @aleksandr-vin, @antoineco, @ccverak, @chernjie, @dnephin, @edmorley, @fordhurley, @josephpage, @KyleJamesWalker, @lsowen, @mchasal, @noironetworks, @sdake, @sdurrheimer, @sherter, @stephenlawrence, @thaJeztah, @thieman, @turtlemonvh, @twhiteman, @vdemeester, @xuxinkun 和 @zwily!

1.2.0

(2015-04-16)

  • docker-compose.yml 现在支持一个 extends 选项,这使得一个服务可以从另一个配置文件中的另一个服务继承配置。这对于在应用程序之间共享通用配置,或者为不同环境配置相同的应用程序非常有用。这里是 文档.

  • 当在Swarm集群中使用Compose时,相互依赖的容器将在同一节点上共同调度。这意味着大多数Compose应用程序现在可以开箱即用,只要它们不使用build

  • 在使用Compose与Swarm集群时,现在可以可靠地重复调用docker-compose up

  • 传递给build的目录、传递给env_file的文件名以及传递给volumes的卷主机路径现在被视为相对于配置文件的目录,而不是docker-compose运行的目录。在大多数情况下,这些是相同的,但如果您使用-f|--file参数指定另一个目录中的配置文件,这是一个重大变化

  • 现在,一个服务可以通过net: container:共享另一个服务的网络命名空间。

  • volumes_fromnet: container: 条目在解析依赖关系时会被考虑,因此 docker-compose up 将正确启动 的所有依赖项。

  • docker-compose run 现在接受一个 --user 参数来指定运行命令的用户,就像 docker run 一样。

  • upstoprestart 命令现在接受 --timeout(或 -t)参数,用于指定在尝试优雅停止容器时等待的时间,就像 docker stop 一样。

  • docker-compose rm 现在接受 -f 作为 --force 的简写,就像 docker rm 一样。

感谢,@abesto, @albers, @alunduil, @dnephin, @funkyfuture, @gilclark, @IanVS, @KingsleyKelly, @knutwalker, @thaJeztah 和 @vmalloc!

1.1.0

(2015-02-25)

Fig 已更名为 Docker Compose,或简称为 Compose。这对您有几个影响:

  • 你现在输入的命令是docker-compose,而不是fig
  • 你应该将你的fig.yml重命名为docker-compose.yml。
  • 如果您通过PyPI安装,现在包名为docker-compose,因此请使用pip install docker-compose进行安装。

除此之外,此版本中还有很多新内容:

  • 我们做了一些小的改动,以确保Compose能够与Swarm(Docker的新集群工具)一起工作(https://github.com/docker/swarm)。最终,您将能够将Compose指向一个Swarm集群,而不是一个独立的Docker主机,它将在集群上运行您的容器,而无需您额外的工作。由于Swarm仍在开发中,集成还很粗糙,许多Compose功能尚未工作。

  • docker-compose run 现在有一个 --service-ports 标志,用于在给定服务上暴露端口。例如,这对于使用交互式调试器运行您的Web应用程序非常有用。

  • 现在,您可以使用docker-compose.yml中的external_links选项链接到应用程序外部的容器。

  • 你现在可以使用--no-build选项来防止docker-compose up自动构建镜像。这将减少API调用并运行得更快。

  • 如果您在使用image键时没有指定标签,Compose将默认使用latest标签,而不是拉取所有标签。

  • docker-compose kill 现在支持 -s 标志,允许你指定要发送给服务容器的确切信号。

  • docker-compose.yml 现在有一个 env_file 键,类似于 docker run --env-file,允许你在一个单独的文件中指定多个环境变量。如果你有很多环境变量,或者你想将敏感信息排除在版本控制之外,这将非常有用。

  • docker-compose.yml 现在支持 dns_searchcap_addcap_dropcpu_sharesrestart 选项,类似于 docker run--dns-search--cap-add--cap-drop--cpu-shares--restart 选项。

  • Compose 现在提供了 Bash 标签自动补全功能 - 请参阅安装和使用文档 https://github.com/docker/compose/blob/1.1.0/docs/completion.md

  • 许多错误已被修复 - 详情请参阅里程碑: https://github.com/docker/compose/issues?q=milestone%3A1.1.0+

感谢 @dnephin, @squebe, @jbalonso, @raulcd, @benlangfield, @albers, @ggtools, @bersace, @dtenenba, @petercv, @drewkett, @TFenby, @paulRbr, @Aigeruth 和 @salehe!

1.0.1

(2014-11-04)

  • 添加了一个--allow-insecure-ssl选项,允许fig upfig runfig pull从不安全的注册表中拉取。
  • 修复了fig run在Jenkins中不显示输出的问题。
  • 修复了 Fig 无法构建包含指向 URL 的 ADD 语句的 Dockerfiles 的错误。

1.0.0

(2014-10-16)

亮点:

  • Fig 已经加入了 Docker。 Fig 将继续维护,但我们也会将 Fig 的最佳部分整合到 Docker 本身中。

    这意味着GitHub仓库已经迁移到 https://github.com/docker/fig 并且我们的IRC频道现在是Freenode上的#docker-fig。

  • Fig 可以与 官方的 Docker OS X 安装程序 一起使用。Boot2Docker 会挂载主机的主目录,因此卷可以按预期工作。

  • Fig 支持 Docker 1.3。

  • 现在可以通过使用DOCKER_CERT_PATHDOCKER_TLS_VERIFY环境变量来连接到Docker守护进程。

  • 有一个新的fig port命令,它以类似于docker port的方式输出服务的主机端口绑定。

  • 有一个新的fig pull命令,用于拉取服务的最新镜像。

  • 有一个新的fig restart命令,用于重新启动服务的容器。

  • Fig 通过在服务名称后附加数字来创建多个容器。例如,db_1db_2。为了方便起见,Fig 现在会给第一个容器一个服务名称的别名。例如,db

    此链接别名也是一个有效的主机名,并已添加到/etc/hosts中,因此您可以使用其主机名连接到链接的服务。例如,您可以直接使用主机名db和端口5432,而不是解析环境变量DB_PORT_5432_TCP_ADDRDB_PORT_5432_TCP_PORT

  • 卷定义现在支持ro模式,扩展~并扩展环境变量。

  • .dockerignore 在构建时受支持。

  • 项目名称可以通过FIG_PROJECT_NAME环境变量设置。

  • --env--entrypoint 选项已添加到 fig run 中。

  • Linux 的 Fig 二进制文件现在链接到一个较旧版本的 glibc,因此它可以在 CentOS 6 和 Debian Wheezy 上运行。

其他事项:

  • fig ps 现在可以在 Jenkins 上工作,并且减少了对 Docker 守护进程的 API 调用。
  • --verbose 显示更多有用的调试输出。
  • 当启动一个服务时,如果volumes_from指向一个没有任何容器运行的服务,现在将启动该服务。
  • 大量文档改进。值得注意的是,环境变量已被记录,并且在整个过程中使用了官方仓库。

感谢 @dnephin, @d11wtq, @marksteve, @rubbish, @jbalonso, @timfreund, @alunduil, @mieciu, @shuron, @moss, @suzaku 和 @chmouel!哇。

0.5.2

(2014-07-28)

  • fig build添加了一个--no-cache选项,该选项绕过缓存,就像docker build --no-cache一样。
  • 修复了dns: fig.yml选项,该选项导致fig出错。
  • 修复了在Python 2.6下无法启动fig的bug。
  • 修复了一个偶尔导致fig退出的日志流错误。

感谢 @dnephin 和 @marksteve!

0.5.1

(2014-07-11)

  • 如果服务定义了命令,fig run [service] 不带其他参数将会运行它。
  • 项目名称现在默认为包含 fig.yml 的目录,而不是当前工作目录(如果它们不同)
  • volumes_from 现在可以正确地与容器以及服务一起工作
  • 修复了在fig up中重新创建容器时的竞争条件

感谢 @ryanbrainard 和 @d11wtq!

0.5.0

(2014-07-11)

  • 现在,当你运行 fig runfig up 时,Fig 会启动链接。

    例如,如果你有一个依赖于db服务的web服务,fig run web ...将会启动db服务。

  • 环境变量现在可以从 Fig 运行的环境中解析。只需在您的 fig.yml 中将其指定为空白变量,如果已设置,它将被解析:

    environment:
      RACK_ENV: development
      SESSION_SECRET:
  • volumes_from 现在在 fig.yml 中受支持。来自指定服务和容器的所有卷将被挂载:

    volumes_from:
     - service_name
     - container_name
  • 现在可以在ports中指定主机地址:

    ports:
     - "0.0.0.0:8000:8000"
     - "127.0.0.1:8001:8001"
  • 现在在fig.yml中支持networkdir选项。

  • hostname 选项现在的工作方式与 Docker CLI 相同,分为一个 domainname 选项。

  • TTY 行为更加稳健,并且正确地支持调整大小。

  • 安全加载YAML文件。

感谢 @d11wtq, @ryanbrainard, @rail44, @j0hnsmith, @binarin, @Elemecca, @mozz100 和 @marksteve 对这个版本的帮助!

0.4.2

(2014-06-18)

  • 修复使用fig runfig upfig build时的各种编码错误。

0.4.1

(2014-05-08)

  • 添加对 Docker 0.11.0 的支持。(感谢 @marksteve!)
  • 使项目名称可配置。(感谢 @jefmathiot!)
  • fig run返回正确的退出代码。

0.4.0

(2014-04-29)

  • 支持 Docker 0.9 和 0.10
  • 在拉取镜像时正确显示进度条(不再出现滑雪坡道)
  • fig up 现在在任何容器退出时停止所有服务
  • 在fig.yml中添加了对privileged配置选项的支持(感谢@kvz!)
  • fig up输出中缩短并对齐日志前缀
  • 只有使用fig run启动的容器才会链接回它们自己的服务
  • 在流式传输fig build/run/up输出时正确处理UTF-8(感谢@mauvm和@shanejonas!)
  • 错误信息改进

0.3.2

(2014-03-05)

  • fig run添加了一个--rm选项。(感谢@marksteve!)
  • fig.yml中添加了一个expose选项。

0.3.1

(2014-03-04)

  • 添加了贡献指南。(感谢 @kvz!)
  • 修复了 fig rm 抛出错误的问题。
  • 修复了在Docker 0.8.1中fig ps的一个bug,当存在没有命令的容器时。

0.3.0

(2014-03-03)

  • 我们现在为OS X和Linux提供二进制文件。不再需要通过Pip安装!
  • 添加 -f 标志以指定替代的 fig.yml 文件
  • 添加对自定义链接名称的支持
  • 修复了一个在重新创建时有时会挂起的错误
  • 更新 docker-py 以支持 Docker 0.8.0。
  • 各种文档改进
  • 各种错误消息的改进

感谢 @marksteve, @Gazler 和 @teozkr!

0.2.2

(2014-02-17)

  • 使用Cormen/Tarjan拓扑排序解决依赖关系
  • 修复 fig up 不打印日志输出的问题
  • 以与启动相反的顺序停止容器
  • 修复scale命令未绑定端口的问题

感谢 @barnybug 和 @dustinlacewell 在这个版本中的工作。

0.2.1

(2014-02-04)

  • 错误报告的一般改进 (#77, #79)

0.2.0

(2014-01-31)

  • 将服务链接到自身,以便运行命令可以访问正在运行的服务。(#67)
  • 更好的文档。
  • 使服务依赖解析更加可靠。(#48)
  • 加载带有.yaml扩展名的Fig配置文件。(#58)

非常感谢@cameronmaske、@mrchrisadams和@damianmoore对此次发布的帮助。

0.1.4

(2014-01-27)

  • 添加一个不带项目名称的链接别名。这使得环境变量稍微短一些:REDIS_1_PORT_6379_TCP_ADDR。(#54)

0.1.3

(2014-01-23)

  • 修复端口有时配置不正确的问题。(#46)
  • 修复日志输出有时不显示的问题。(#47)

0.1.2

(2014-01-22)

  • 添加 -T 选项到 fig run 以禁用伪终端。 (#34)
  • 修复 fig up 需要拉取 ubuntu 镜像以重新创建容器的问题。(#33) 感谢 @cameronmaske!
  • 提高可靠性,修复箭头键并修复fig run中的竞争条件。(#34, #39, #40)

0.1.1

(2014-01-17)

  • 修复端口未正确暴露的错误(#29)。感谢 @dustinlacewell!

0.1.0

(2014-01-16)

  • 每次执行fig up时,容器都会重新创建,确保配置与fig.yml保持最新(#2)
  • 添加 fig scale 命令 (#9)
  • 使用 DOCKER_HOST 环境变量来查找 Docker 守护进程,以与官方 Docker 客户端保持一致(以前是 DOCKER_URL)(#19)
  • fig ps中截断长命令 (#18)
  • 填写命令的CLI帮助横幅(#15, #16)
  • fig.yml缺失时显示更友好的错误信息 (#4)
  • 修复fig build日志记录的错误 (#3)
  • 修复了如果某个步骤花费很长时间而没有生成输出时构建会超时的错误 (#6)
  • 修复了通过Unix套接字流式传输容器输出时引发错误的bug (#7)

非常感谢 @tomstuart, @EnTeQuAk, @schickling, @aronasorman 和 @GeoffreyPlitt。

0.0.2

(2014-01-02)

  • 改进文档
  • 尝试连接到Docker,除了localhost之外,还可以使用tcp://localdocker:4243和UNIX套接字。
  • 改进 fig up 行为
  • fig rm添加确认提示
  • 添加 fig build 命令

0.0.1

(2013-12-20)

初始发布。