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 构建时的支持
- 添加了
restart和sync+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-20Bug 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-deps与up时重新创建容器的错误。 - 修复了在重新附加容器时未关闭流的错误。
- 在使用
-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-restartWatch操作中阻止单个容器的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-24Bug 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-30Bug 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.tags与push命令。 - 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.driver或template_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以保持之前的行为 - 修复了
up和configure之间的哈希不一致问题 - 当使用明确的服务名称运行
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传递给
up和run命令。
2.21.0
2023-08-30注意
docker compose ps和docker compose ps --format=json的格式已更改,以更好地与docker ps输出对齐。请参阅 compose#10918.
更新
- 依赖项升级:将compose-go升级至v1.18.3
Bug修复和增强功能
- 更改了
docker compose ps和docker 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-19Bug 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命令添加了对--builder和BUILDX_BUILDER的支持。 - 添加了对Compose规范中
include和attach属性的支持。 - 修复了初始化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-17Bug 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中的布尔字段必须是
true或false。不推荐使用的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 现在支持
stop和rm命令的 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 - 添加了
--scale到compose 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 ps与docker 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
- 修复了
--pull在compose 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.toolsv2 的使用。拉取请求 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安全
- 更新了Docker Engine API以应用CVE-2022-39253的修复。拉取请求compose#9934
如需完整的变更日志或更多信息,请查看 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
更新
- 升级到compose-go从 1.5.1 到 1.6.0
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-20Bug修复和增强功能
- 修复了一个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
- 修复了带有
--rmi的down。修复了 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-26Bug修复和增强
- 正确尊重
DOCKER_TLS_VERIFY和DOCKER_CERT_PATH环境变量。修复 compose#9789. - 改进了在docker/docker-ce-packaging#742中使用的
Makefile。
如需完整的变更日志或更多信息,请查看 Compose 仓库 2.10.2 发布页面。
2.10.1
2022-08-24更新
- 依赖更新:将 github.com/moby/buildkit 从 0.10.3 升级到 0.10.4.
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新
- 将新加载的环境变量应用到
DockerCli和APIClient。修复了 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#9705 和 compose#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引入。
更新
- 更新了
compose-go到 v1.4.0,因为之前的版本引入了破坏性更改。修复了 compose#9700。
错误修复和功能增强
- 覆盖了父命令的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-spec/compose-go#292.
- 定义了环境变量评估的优先级。修复了 compose#9521, compose#9638, compose#9608, compose#9578. compose#9468, 和 compose#9683.
- 文档 CI:修复了在创建 PR 时使用 push-to-fork 的问题。
- 使用环境变量来指定golang的版本,并将GitHub Actions从v2更新到v3。
- 使用了 google/addlicense 而不是 kunalkushwaha/ltag。
如需完整的变更日志或更多信息,请查看 Compose repository 2.8.0 发布页面。
2.7.0
2022-07-20新
- 在构建步骤中添加了对环境机密的支持。修复了 compose#9606.
更新
- 依赖项升级:将 go 升级到 1.18.4.
- 依赖项升级:将 compose-go 升级到 v1.2.9.
Bug 修复和功能增强
- 网络:防止了由于重复名称导致的问题。修复了 moby/moby#18864.
- 修复了在
compose up和compose 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-spec/compose-spec#251.
更新
- 升级: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.cpus和deploy.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的端到端测试。
更新
- 依赖更新:升级 compose-go 到 1.2.6.
- 依赖更新:升级 compose-go 到 1.2.7.
- 依赖更新:升级 golang 到 1.18.
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-29Bug修复和增强功能
- 修复了在指定
-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以允许(重新)构建卷字符串,以便在无法使用挂载时由引擎bindAPI使用。修复了 #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-04Bug 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_from、cache_to、no_cache和pull属性的支持。这些属性允许强制从源代码完全重建,并检查注册表中使用的镜像。这些变化为将来为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.yml和compose.yaml添加到默认文件名列表中。
1.28.5
(2021-02-26)
Bugs
修复了在通过SSH客户端进行shell操作时出现的OpenSSL版本不匹配错误(通过升级到包含修复的docker-py 4.4.4版本)。
向本地构建器添加了缺失的构建标志:
platform、isolation和extra_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.scale时docker-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支持。添加了缺失的测试依赖项
ddt到setup.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.
- Limited service scale to the size specified by the field
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 会丢弃值为
None的com.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=1和COMPOSE_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的支持。
在
bash和zsh的自动补全中,为docker build的选项添加了--parallel。
Bug 修复
修复了一个错误,该错误导致在尝试从私有注册表拉取镜像时,Compose 未能正确处理某些有效的凭证助手。
修复了在容器创建之前执行
docker-compose start输出误导性的问题。Compose 将不再接受来自环境文件的变量名中的空格。 这与 Docker CLI 的行为一致。
如果服务尝试在卷部分声明重复的挂载点,Compose 现在将报告配置错误。
修复了Compose容器化版本中的一个问题,该问题阻止用户在由
run或exec启动的交互式会话期间写入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时无法构建的错误。
修复了一个导致
run和exec命令在某些情况下无法接受--host参数值的错误。修复了服务定义中
storage_opt和isolation键的覆盖未正确应用的问题。修复了一个错误,其中一些无效的Compose文件在验证期间会引发未捕获的异常。
1.23.1
(2018-11-01)
Bug 修复
修复了一个在使用早于
1.23.0版本的Compose创建的容器时可能导致意外崩溃的错误。修复了
--project-directory标志的行为会根据使用的子命令而变化的问题。
1.23.0
(2018-10-30)
重要提示
在这个版本中,由Compose创建的容器的默认命名方案已从更改为,其中是一个随机生成的十六进制字符串。请在升级前确保更新依赖旧命名方案的脚本。
功能
容器在崩溃后重新启动的日志现在将出现在
up和logs命令的输出中。添加了
--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_period和cpu_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 config为exec和run命令生成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。 默认的日志级别是infodocker-compose run现在允许用户取消容器的入口点在
~/.docker/config.json文件中找到的代理配置现在会为Compose创建的容器填充环境和构建参数添加了
--use-aliases标志到docker-compose run,表示应该使用服务配置中声明的网络别名来运行容器向
docker-compose pull添加了--include-deps标志docker-compose run现在在接收到SIGHUP信号时会杀死并移除正在运行的容器。docker-compose ps现在显示容器的健康状态(如果可用)为
exec、run和up命令添加了长格式的--detach选项
Bug 修复
修复了
.dockerignore处理,特别是关于绝对路径和最后一行优先规则的问题修复了在使用 Docker For Mac 时,Compose 在连接到 Engine 时会进行昂贵的 DNS 查找的问题
修复了1.19.0版本中引入的一个错误,该错误导致Compose未遵循默认证书路径
修复了一个错误,即Compose在构建上下文的一部分时错误地检查符号链接的目标是否可访问
修复了一个错误,其中包含空白行的
.dockerignore文件导致Compose在Windows上出错修复了一个错误,其中
--tls*和--host选项在交互式run和exec命令中不会被正确遵守在
security_opt配置中的seccomp:条目现在正确地将文件内容发送到引擎ANSI输出对于
up和down操作不应再影响错误的行改进对非Unicode区域设置的支持
修复了当用户的主目录名称包含非ASCII字符时在Windows上发生的崩溃问题
修复了在构建过程中由于构建上下文中文件的
mtime值为负而导致的错误修复了流式传输构建进度时的编码错误
1.19.0
(2018-02-07)
重大变更
- 在UNIX平台上,交互式的
run和exec命令现在默认要求客户端安装dockerCLI。要恢复到之前的行为,用户可以设置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
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_from、network和target选项的支持在
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运行
修复了一个问题,即如果原始文件使用了
Y或N值,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_spec和configs键仅适用于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-from与up时,如果Compose安装在Python 3环境中会失败的bug修复了一个错误,该错误在使用
tmpfs和volumes组合重新创建容器时会导致配置状态无效
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的假值(0,false,空值)被错误地解释为真。修复了一个错误,即在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 run和docker-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
isolationparameter 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).
- Added support for setting volume labels and network labels in
在服务定义中添加了对
group_add和oom_score_adj参数的支持。在网络定义中添加了对
internal和enable_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 create和docker-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文件中映射的值(对于键
environment、labels和extra_hosts)。以前这是一个警告。布尔值应该被引用,以便它们成为字符串值。
新功能
Compose 现在会在其运行的目录中查找一个
.env文件,并读取其中定义的所有环境变量,如果这些变量尚未在 shell 环境中设置。这使您可以轻松地为 Compose 文件中使用的变量或任何COMPOSE_*或DOCKER_*变量设置默认值。为
docker-compose up和docker-compose down添加了一个--remove-orphans标志,用于移除从Compose文件中删除的服务的容器。为
docker-compose rm添加了一个--all标志,以包括由docker-compose run创建的容器。这将成为下一个Compose版本的默认行为。增加了对
docker客户端使用的所有相同TLS配置标志的支持:--tls,--tlscert,--tlskey等。Compose 文件现在支持
tmpfs和shm_size选项。为
docker-compose run添加了--workdir标志docker-compose logs现在显示在它启动后创建的新容器的日志。COMPOSE_FILE环境变量现在可以包含多个文件,由主机系统的标准路径分隔符分隔(在Mac/Linux上是:,在Windows上是;)。您现在可以在将服务连接到网络时使用
ipv4_address和ipv6_address选项指定静态IP地址。添加了
--follow、--timestamp和--tail标志到docker-compose logs命令中。docker-compose up和docker-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_opt和log_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文件时,
networks和network_mode未合并的错误。修复了服务别名的一个错误,其中短容器ID别名仅包含10个字符,而不是之前版本中使用的12个字符。
在创建新的命名卷时添加了缺失的日志消息。
修复了一个在使用
extends或多个Compose文件时,build.args未合并的错误。修复了在使用空值或不正确类型代替映射时配置验证的一些错误。
修复了一个错误,即没有
context的build部分会显示堆栈跟踪而不是有用的验证消息。通过仅在服务使用匿名容器卷时,将容器亲和性设置为服务容器的前一个实例,提高了与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如果您使用新的文件格式,您现在可以同时指定
build和image键。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配置选项的支持。如果未修改任何容器,命令
start、restart、pause和unpause现在将以错误状态码退出。添加了一个新的
--abort-on-container-exit标志到up,该标志使得up在第一个容器退出时停止所有容器并退出。移除了对
FIG_FILE、FIG_PROJECT_NAME的支持,并且不再将fig.yml作为默认的Compose文件位置。移除了
migrate-to-labels命令。移除了
--allow-insecure-ssl标志。
Bug 修复
修复了一个验证错误,该错误阻止了在
expose字段中使用一系列端口。修复了一个验证错误,该错误阻止了在
entrypoint字段中使用包含重复项的数组。修复了一个导致
ulimits在与extends一起使用时被忽略的错误。修复了一个阻止在
extra_hosts中使用ipv6地址的错误。修复了一个导致在从多个Compose文件中包含时忽略
extends的错误。修复了在Compose文件中定义容器卷时出现的错误警告。
修复了一个阻止
up和logs强制关闭行为的错误。修复了一个导致在使用默认网络驱动程序时,
None被打印为网络驱动程序名称的错误。修复了一个错误,即使用
dns或dns_search的字符串形式会导致错误。修复了一个错误,即当容器处于重启状态时,会被报告为“Up”。
修复了当DOCKER_CERT_PATH未正确设置时出现的令人困惑的错误信息。
修复了一个错误,当容器使用非标准日志驱动程序(或根本没有)时,附加到容器会失败。
1.5.2
(2015-12-03)
修复了一个错误,该错误破坏了与
extends一起使用environment和env_file的功能,并导致没有值的环境键具有None值,而不是来自主机环境的值。修复了1.5.1版本中的一个回归问题,该问题导致在重新创建容器时错误地引发了关于卷的警告。
修复了一个阻止构建使用
Dockerfile的ADD的错误修复了
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字符会导致
up或logs崩溃。修复了1.5.0版本中的一个回归问题,该问题导致在与docker守护进程通信时由于HTTP超时而命令失败时,Compose会使用成功退出状态码。
修复了1.5.0版本中的一个回归问题,其中
name被接受为一个有效的服务选项,这将覆盖服务的实际名称。当使用
--x-networking时,Compose 不再将主机名设置为容器名称。当使用
--x-networking时,Compose 只有在至少有一个容器使用网络时才会创建默认网络。在
up或logs期间打印日志时,每行后刷新输出缓冲区,以防止缓冲问题隐藏日志。如果容器的某个依赖项正在被创建,则重新创建该容器。 以前,只有在容器的依赖项已经存在并且也在被重新创建时,才会重新创建容器。
当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
主要功能
Compose 现在可用于 Windows。
环境变量可以在Compose文件中使用。参见 https://github.com/docker/compose/blob/8cc8e61/docs/compose-file.md#variable-substitution
可以指定多个compose文件,允许您覆盖默认Compose文件中的设置。有关更多详细信息,请参阅 https://github.com/docker/compose/blob/8cc8e61/docs/reference/docker-compose.md 。
当文件包含无效配置时,Compose 现在会生成更好的错误消息。
up现在会等待所有服务退出后再关闭,而不是在一个容器退出后立即关闭。可以通过
--x-networking标志启用对新docker网络系统的实验性支持。了解更多信息: https://github.com/docker/docker/blob/8fee1c20/docs/userguide/dockernetworks.md
新功能
你现在可以选择性地传递一个模式给
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 pause和docker-compose unpause已经实现, 类似于docker pause和docker 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 修复
- 一些配置更改(特别是对
links、volumes_from和net的更改)没有正确触发容器重新创建,作为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,kill和rm- 现在可以并行地对多个容器执行操作,而不是按顺序执行,这将使大型应用程序运行得更快。你现在可以使用
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 rm和docker-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_from和net: container:条目在解析依赖关系时会被考虑,因此docker-compose up将正确启动的所有依赖项。docker-compose run现在接受一个--user参数来指定运行命令的用户,就像docker run一样。up、stop和restart命令现在接受--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_search、cap_add、cap_drop、cpu_shares和restart选项,类似于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 up、fig run和fig 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_PATH和DOCKER_TLS_VERIFY环境变量来连接到Docker守护进程。有一个新的
fig port命令,它以类似于docker port的方式输出服务的主机端口绑定。有一个新的
fig pull命令,用于拉取服务的最新镜像。有一个新的
fig restart命令,用于重新启动服务的容器。Fig 通过在服务名称后附加数字来创建多个容器。例如,
db_1,db_2。为了方便起见,Fig 现在会给第一个容器一个服务名称的别名。例如,db。此链接别名也是一个有效的主机名,并已添加到
/etc/hosts中,因此您可以使用其主机名连接到链接的服务。例如,您可以直接使用主机名db和端口5432,而不是解析环境变量DB_PORT_5432_TCP_ADDR和DB_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 run或fig 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中支持net和workdir选项。hostname选项现在的工作方式与 Docker CLI 相同,分为一个domainname选项。TTY 行为更加稳健,并且正确地支持调整大小。
安全加载YAML文件。
感谢 @d11wtq, @ryanbrainard, @rail44, @j0hnsmith, @binarin, @Elemecca, @mozz100 和 @marksteve 对这个版本的帮助!
0.4.2
(2014-06-18)
- 修复使用
fig run、fig up和fig 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)
初始发布。