Docker Compose 发行说明
有关更详细的信息,请参阅 Compose 存储库中的发行说明。
2.39.2
2025-08-04错误修复和增强
- 修复了构建输出的多个渲染问题
- 修复了 `pull` 和 `no_cache` 属性未与 `bake` 一起应用的问题
- 移除了 `up` 命令中未明确附加服务的日志显示
更新
- 依赖项升级:将 docker 引擎和 cli 提升到 v28.3.3
- 依赖项升级:将 golang 提升到 v1.23.12
- 依赖项升级:将 containerd 提升到 2.1.4
2.39.1
2025-07-24错误修复和增强
- 添加了用于监控 `models` 使用情况的指标
更新
- 依赖项升级:将 compose-go 提升到 v2.8.1
2.39.0
2025-07-24错误修复和增强
- 为 `config` 命令添加了 `--models` 标志以列出模型
- 为 `events` 添加了 `--since` 和 `--until` 标志
- 在 `build` 部分引入了 `provenance` 和 `sbom` 属性
- 修复了 Windows 上的 `bridge convert` 问题
- 修复了 `bake` 构建的多个问题
更新
- 依赖项升级:将 docker 引擎和 cli 提升到 v28.3.2
- 依赖项升级:将 buildx 提升到 v0.26.1
- 依赖项升级:将 compose-go 提升到 v2.8.0
2.38.2
2025-07-08错误修复和增强
- 为 `config` 命令添加了 `--networks` 标志以列出网络
- 修复了使用 Docker Model Runner 作为提供程序服务时 `down` 命令的问题
- 修复了 Docker Model Runner 进度显示问题
- 修复了具有配置文件但缺少 secrets 的服务问题
更新
- 依赖项升级:将 docker 引擎和 cli 提升到 v28.3.1
- 依赖项升级:将 buildkit 提升到 v0.23.2
- 依赖项升级:将 golang 提升到 v1.23.10
2.38.1
2025-06-30错误修复和增强
- 为服务 `models` 配置添加了 `model_variable` 支持
更新
- 依赖项升级:将 compose-go 提升到 v2.7.1
2.38.0
2025-06-30错误修复和增强
- 引入了对 LLM 配置的 `models` 支持
- 添加了 `volumes` 命令
- 移除了绑定挂载上的 `publish` 限制
- 修复了将 docker socket 挂载到不需要它的容器的问题
- 修复了 bake 输出挂起的问题
更新
- 依赖项升级:将 compose-go 提升到 v2.7.0
- 依赖项升级:将 docker 引擎和 cli 提升到 v28.3.0
2.37.3
2025-06-24错误修复和增强
- 为 Bake 添加了 `cache_to` 支持
- 修复了 Bake 集成问题
- 修复了影响 `run` 命令的多个问题
更新
- 依赖项升级:将 buildkit 提升到 v0.23.1
2.37.2
2025-06-20错误修复和增强
- 引入了 `use_api_socket`
- 修复了 `compose images` JSON 输出格式
- 修复了在不支持 watch 的项目上使用 `w` 快捷方式时发生的 panic
- 修复了 Windows 上 bake 元数据文件的权限问题
- 修复了提供程序服务启动时的 panic 错误
更新
- 依赖项升级:将 compose-go 提升到 v2.6.5
- 依赖项升级:将 buildx 提升到 v0.25.0
- 依赖项升级:将 buildkit 提升到 v0.23.0
2.37.1
2025-06-12错误修复和增强
- 修复了 Windows 上 bake 元数据文件的权限问题
- 修复了提供程序服务启动时的 panic 错误
- 将 `compose images` JSON 输出恢复为数组格式
2.37.0
2025-06-05错误修复和增强
- 修复了随机端口分配问题
- 修复了在内循环中不必要地重新创建容器的问题
- 修复了 `up --build` 和 `additional_context` 一起使用时的问题
更新
- 依赖项升级:将 compose-go 提升到 v2.6.4
- 依赖项升级:将 buildx 提升到 v0.24.0
- 依赖项升级:将 buildkit 提升到 v0.22.0
2.36.2
2025-05-23错误修复和增强
- Compose Bridge 功能现在是 Compose 的一部分
- 改进了 `docker compose images` 命令的显示
- 将 `bake` 提升为 Compose 的默认构建工具
- 修复了构建流程中的问题
- 修复了 `watch` 重建镜像后依赖服务重启的问题
更新
- 依赖项升级:将 docker 引擎和 cli 提升到 v28.2.2
2.36.1
2025-05-19错误修复和增强
- 引入了对 `provider` 服务 `options` 属性数组的支持
- 在扩展协议中添加了 `debug` 消息
- 修复了尝试发布带有 `provider` 服务的 Compose 应用程序时的问题
- 修复了带有 `service.provider` 的 Compose 应用程序的构建问题
- 为 `config` 命令引入了 `--lock-image-digests`
更新
- 依赖项升级:将 compose-go 提升到 v2.6.3
- 依赖项升级:将 containerd 提升到 2.1.0
2.36.0
2025-05-07错误修复和增强
- 引入了 `networks.interface_name`
- 添加了对 `COMPOSE_PROGRESS` 环境变量的支持
- 将 `service.provider` 添加到外部二进制文件
- 引入了 build `--check` 标志
- 修复了解析 Compose 文件时发生的多个 panic 问题
更新
- 依赖项升级:将 compose-go 提升到 v2.6.2
- 依赖项升级:将 docker 引擎和 cli 提升到 v28.1.0
- 依赖项升级:将 containerd 提升到 2.0.5
- 依赖项升级:将 buildkit 提升到 v0.21.1
2.35.1
2025-04-17错误修复和增强
- 修复了绑定挂载问题
更新
- 依赖项升级:将 compose-go 提升到 v2.6.0
- 依赖项升级:将 docker 引擎和 cli 提升到 v28.0.4
- 依赖项升级:将 buildx 提升到 v0.22.0
2.35.0
2025-04-10错误修复和增强
- 添加了对 Docker Model Runner 的支持,以便轻松将 AI 模型集成到您的 Compose 应用程序中
- 添加了 `build --print` 命令,通过显示等效的 bake 文件来帮助调试复杂的构建配置
- 添加了 `volume.type=image` 以提供更灵活的容器镜像卷管理
- 为 `run` 命令添加了 `--quiet` 选项,以在运行容器时获得更清晰的输出
- 为 `config` 命令添加了 `--no-env-resolution` 选项,以查看不带环境变量替换的原始配置
- 修复了 `depends_on` 的行为,以防止在依赖项更改时不必要的容器重新创建
- 修复了使用 `include` 时环境变量定义的 secrets 的支持
- 修复了卷挂载处理,以确保绑定挂载在所有场景中都能正常工作
更新
- 依赖项升级:将 docker 引擎和 cli 提升到 v28.1.0
- 依赖项升级:将 buildx 提升到 v0.23.0
- 依赖项升级:将 buildkit 提升到 v0.21.0
2.34.0
2025-03-14错误修复和增强
- 添加了对刷新 `pull_policy` 值 `daily`、`weekly` 和 `every_<duration>` 的支持
- 在 `watch` 定义中引入了 `include` 属性以匹配文件模式
- 为 `docker compose run` 命令引入了 `--env-from-file` 标志
- 将 `publish` 提升为 Compose 的常规命令
- 修复了在选择服务后加载 `env_file` 的错误
更新
- 依赖项升级:将 docker 引擎和 cli 提升到 v28.0.1
- 依赖项升级:将 buildkit 提升到 v0.17.1
- 依赖项升级:将 compose-go 提升到 v2.4.9
- 依赖项升级:将 buildx 提升到 v0.21.2
2.33.1
2025-02-21错误修复和增强
- 添加了对 `gw_priority`、`enable_ipv4` 的支持(需要 Docker v28.0)
- 修复了导航菜单问题
- 改进了与只读服务一起使用非文件 secret/config 时的错误消息
更新
- 依赖项升级:将 docker 引擎和 cli 提升到 v28.0.0
2.33.0
2025-02-13错误修复和增强
- 引入了一个提示来推广使用 Bake
- 引入了对引用另一个服务的 `additional_context` 属性的支持
- 添加了对 `BUILDKIT_PROGRESS` 的支持
- 当已发布的 Compose 应用程序包含环境变量时,Compose 现在会发出警告
- 添加了 `--with-env` 标志以发布带有环境变量的 Compose 应用程序
- 更新了 `ls --quiet` 帮助说明
- 修复了将构建委托给 Bake 的多个问题
- 更新了 `stats` 命令中的帮助
- 修复了“内置”seccomp 配置文件的支持
- 修复了对多个服务使用 `watch` 的支持
- 移除了旧版指标系统使用的按错误类型划分的退出代码
- 修复了 `compatibility` 的测试覆盖率
- 移除了发送到 OpenTelemetry 的原始 os.Args
- 启用了 copyloopvar linter
- 修复了二进制文件的出处并生成 SBOM
- 现在使用主分支进行文档上游验证
- 添加了 codeowners 文件
- 将 Docker Engine v28.x 添加到测试矩阵
更新
- 依赖项升级:将 compose-go 提升到 v2.4.8
- 依赖项升级:将 buildx 提升到 v0.20.1
- 依赖项升级:将 docker 提升到 v27.5.1
- 依赖项升级:将 golangci-lint 提升到 v1.63.4
- 依赖项升级:将 golang.org/x/sys 从 0.28.0 提升到 0.30.0
- 依赖项升级:将 github.com/moby/term 提升到 v0.5.2
- 依赖项升级:将 github.com/otiai10/copy 从 1.14.0 提升到 1.14.1
- 依赖项升级:将 github.com/jonboulle/clockwork 从 0.4.0 提升到 0.5.0
- 依赖项升级:将 github.com/spf13/pflag 从 1.0.5 提升到 1.0.6
- 依赖项升级:将 golang.org/x/sync 从 0.10.0 提升到 0.11.0
- 依赖项升级:将 gotest.tools/v3 从 3.5.1 提升到 3.5.2
2.32.4
2025-01-16错误修复和增强
- 修复了使用 `docker compose version` 时 Compose 版本未正确显示的问题
2.32.3
2025-01-13注意来自 Compose GitHub 存储库的二进制文件可能无法正确显示版本号。如果您在开发或 CI 流程中依赖 `docker compose version`,请升级到 Compose 版本 2.32.4。
错误修复和增强
- 修复了 Compose 会用主网络 MAC 地址覆盖服务级别 MAC 地址的问题
- 修复了并发构建期间的日志渲染问题
2.32.2
2025-01-07更新
- 依赖项升级:将 compose-go 提升到 v2.4.7
- 依赖项升级:将 golang 提升到 v1.22.10
错误修复和增强
- 为 `docker compose run` 命令添加了 `--pull` 标志
- 修复了 `watch` 模式的 `restart` 操作未监控绑定挂载的错误
- 修复了使用匿名卷时重新创建容器的问题
2.32.1
2024-12-16错误修复和增强
- 修复了不必要地重新创建容器的错误
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
错误修复和增强
- 改进了使用 Bake 构建时的支持
- 添加了 `restart` 和 `sync+exec` watch 操作
- 当卷或网络配置更改时,Compose 现在会重新创建容器
- 修复了对 `mac_address` 的支持
- 修复了 `pull --quiet` 以仅隐藏进度,而不隐藏全局状态
- 修复了只有 `rebuild` watch 操作现在需要构建声明的问题
- 当通过 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
错误修复和增强
- 添加了使用 Docker Buildx Bake 构建 Docker Compose 服务的能力
- 添加了 `commit` 命令以从正在运行的容器创建新镜像
- 修复了未检测到网络更改的问题
- 修复了容器顺序停止导致重启过程变慢的问题
2.30.3
2024-11-07更新
- 依赖项升级:将 compose-go 提升到 v2.4.4
错误修复和增强
- 修复了使用 `--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
错误修复和增强
- 修复了将 stdin 作为 `-f` 标志输入时的回归问题
- 修复了在 Compose 文件中多次使用相同 YAML 锚点时的回归问题
2.30.0
2024-10-29更新
- 依赖项升级:将 compose-go 提升到 v2.4.1
- 依赖项升级:将 docker 引擎和 cli 提升到 v27.3.1
错误修复和增强
- 引入了服务钩子支持。
- 添加了 alpha `generate` 命令。
- 添加了 `export` 命令。
- 添加了对 Compose 文件中使用 `devices` 进行 CDI 设备请求的支持。
- 大量 bug 修复。
2.29.7
2024-09-20错误修复和增强
- 修复了使用挂载 API 进行绑定挂载时的回归问题。
2.29.6
2024-09-19更新
- 依赖项升级:将 docker 引擎和 cli 提升到 v27.3.0-rc.2
错误修复和增强
- 修复了 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
错误修复和增强
- 现在允许将绑定挂载和 `rebuild` 组合与 `watch` 一起使用。
- 修复了当 `up` 与 `--no-deps` 一起使用时重新创建容器的错误。
- 修复了重新附加容器时未关闭流的错误。
- 恢复了使用 `-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
错误修复和增强
- 修复了 `docker compose kill` 用法的文档。
- 修复了 build.go 中 `toAPIBuildOptions` 的冗余条件。
- 修复了 Compose 重启后 Watch 的初始 `sync` 问题,引入了 `x-initialSync`。
- 修复了当 `sync-restart` Watch 动作用于单个容器时,Compose 进程停止的问题。
2.29.1
2024-07-23更新
- 依赖项升级:将 compose-go 提升到 v2.1.5。
- 依赖项升级:将 docker 引擎和 cli 提升到 v27.1.0。
错误修复和增强
- 使用更多字段增强 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
错误修复和增强
- 添加了 JSON 流进度写入器。
- 为 `docker compose watch` 命令添加了 `--prune` 标志。
- 现在,在选择服务后,不必要的资源将被排除。
- 没有值的空变量在容器中被 unset。
2.28.1
2024-06-24错误修复和增强
- 修复了在 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
错误修复和增强
- 为 `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
错误修复和增强
- 在 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
错误修复和增强
- 在输出中添加了镜像拉取失败原因
- 修复了在没有构建和 watch 的情况下运行 `up` 时的崩溃
- 修复了在没有 TTY 可用且菜单启用时的崩溃
- 改进了菜单操作的可读性
2.26.0
2024-03-22更新
- 依赖项升级:将 compose-go 提升到 v2.0.2
- 依赖项升级:将 docker 提升到 v26.0.0
错误修复和增强
- 减少了 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
错误修复和增强
- Compose 现在确保网络具有稳定的优先级排序
- 修复了默认值中带大括号(例如 JSON)的插值
- 修复了非唯一 `container_name` 值的验证
- 修复了 `develop.watch` 的验证
- 修复了 `include` 的环境加载
- 修复了合并标签/网络时的 panic
- 添加了对使用 `include` 时 `--no-path-resolution` 的支持
- 修复了缺失项目名称的错误
- 修复了 `config` 上的 `--no-interpolate` 标志
- 为 Windows 上的 Watch 模式的文件锁问题添加了一个 workaround
- 修复了重复的退出代码状态消息
- Compose 现在在 `up` 时遵守 `COMPOSE_REMOVE_ORPHANS`
2.24.6
2024-02-15更新
- 依赖项升级:将 cli 提升到 25.0.3
- 依赖项升级:将 compose-go 提升到 2.0.0-rc.7
错误修复和增强
- 修复了当项目文件通过 `COMPOSE_FILE` 变量设置时 `.env` 文件加载的问题
- 使 `ps --status=exited` 行为与 Docker CLI 行为保持一致
- 修复了收集大量日志时的死锁
2.24.5
2024-01-30错误修复和增强
- 修复了在 Windows 上构建镜像时“failed to solve: changes out of order”错误。
2.24.4
2024-01-29更新
- 依赖项升级:将 cli 提升到 25.0.1
- 依赖项升级:将 docker 提升到 25.0.1
- 依赖项升级:将 compose-go 提升到 2.0.0-rc.3
错误修复和增强
- 修复了在 swarm 启用时检查外部网络是否存在的问题。
- 添加了对 `storage_opt` 属性的支持。
2.24.3
2024-01-24此版本修复了 Compose v2.24.0 中引入的 Windows 版 Docker Desktop 的构建问题。
更新
- 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
错误修复和增强
- 重新设计了 `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
错误修复和增强
- 引入了 `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 现在会在 `compose up` 的 SIGINT/SIGTERM 信号上发送取消事件。
- 修复了日志,通过 `---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 提升到 1.20.2
错误修复和增强
- Compose 现在支持 `builds.tags` 与 `push` 命令。
- Compose Watch 现在会在启动时重新构建服务镜像。
- 现在,`--remove-orphans` 不会将禁用服务作为孤立服务进行管理。
- Compose 仅在至少有一个服务需要构建时显示 `Building` 输出日志。
2.23.1
2023-11-16更新
- 依赖项升级:将 compose-go 提升到 v1.20.1
错误修复和增强
- 使 Compose 与 OCI 工件最佳实践保持一致。
- 引入了 `---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
错误修复和增强
- 添加了对发布命令的空运行支持
- 添加了 `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
错误修复和增强
- 添加了对 `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
错误修复和增强
- 更改了 `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
错误修复和增强
- 提高了 `watch` 同步的速度和可靠性。
- 在第一行构建中添加了构建器名称。
- 改进了 `--project-directory` 和 `--profile` 的 shell 补全。
- 修复了代理配置未传递给旧版构建器的构建问题。
- 移除了可选依赖项成功存在时不必要的警告。
2.20.2
2023-07-19错误修复和增强
- 添加了对 `depends_on.required` 属性的支持。
- 修复了构建尝试推送未命名服务镜像的问题。
- 修复了未检查 Windows 上目标 secret 路径的错误。
- 修复了使用 `extends.file` 的服务解析构建上下文路径的错误。
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
错误修复和增强
- 引入了 `wait` 命令。
- 为 `build` 命令添加了对 `--builder` 和 `BUILDX_BUILDER` 的支持。
- 添加了对 Compose 规范中 `include` 和 `attach` 属性的支持。
- 修复了初始化 CLI 客户端时的 DryRun 模式问题。
- 修复了当服务有多个网络时随机缺少网络的错误。
- 修复了 Secrets 文件权限值以符合 Compose 规范。
- 修复了 `no-deps` 标志未应用的问题。
- 修复了一些源代码注释。
- 修复了当 `--index` 未设置选择时的错误。
- 修复了 wait e2e 测试中的进程泄漏。
- 提高了一些测试速度。
2.19.1
2023-06-29更新
- 依赖项升级:将 compose-go 提升到 v1.15.1
错误修复和增强
- 修复了 `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` 以使用服务镜像运行维护命令。
- 修复了 swarm 模式检测期间的错误。
- 修复了通过 `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 环境下文档生成任务中的错误。
- 更新了文档以反映空运行模式功能已完成。
- 改进了网络标签不匹配的诊断消息。
- 修复了在没有构建的情况下渲染 `Building` 部分的错误。
- 修复了代码覆盖率指标中的错误。
- 添加了 OTEL 初始化。
- 添加了一个 GitHub 操作,以使用 Compose edge 版本触发 Docker Desktop e2e 测试。
- 向 dependabot 添加了更多忽略规则。
2.18.1
2023-05-17错误修复和增强
- 修复了构建镜像时“Image not found”错误
2.18.0
2023-05-16更新
- 依赖项升级:将 compose-go 提升到 v1.13.5
- 依赖项升级:将 buildkit 提升到 v0.11.6
- 依赖项升级:将 docker 提升到 v23.0.5
错误修复和增强
- 添加了使用 `--dry-run` 的空运行支持
- 添加了 `viz` 子命令的第一个 (alpha) 实现
- 引入了 `--no-path-resolution` 以跳过解析相对路径
- 引入了 `COMPOSE_ANSI` 以定义 `--ansi` 的默认值
- 引入了 `COMPOSE_STATUS_STDOUT` 以将状态消息发送到 stdout
- 修复了 BuildKit progressui 集成
- 修复了阻止事件循环收集日志的错误
- 恢复了对 `--memory` 的支持
- 修复了容器终止后不停止的错误
- Compose 现在允许用户声明构建 secret 目标
- 修复了当配置未更改时导致容器重新创建的错误
- 修复了当 `--parallel` 与大量依赖服务一起使用时的竞态条件
- Compose 现在会检查本地镜像是否与所需平台匹配
- 修复了当 `compose down` 与 `--project-name` 一起运行时删除本地镜像的问题
- Compose 现在会检测活动端点何时尝试删除网络,并跳过并发出警告
- 移除了不必要的 [] 输出
- Compose 检测到 Windows 终端不是 `console.File`,以避免 panic
- `--parallel` 现在优先于 `COMPOSE_PARALLEL_LIMIT`
- 当 Swarm 被禁用时,Compose 现在会报告找不到外部网络
2.17.2
2023-03-26更新
- 依赖项升级:将 compose-go 提升到 v1.13.2
错误修复和增强
- 修复了目录名称中包含大写字符或 `.` 时项目名称无效的错误。修复了 compose#10405
2.17.1
2023-03-24更新
- 依赖项升级:将 buildkit 提升到 v0.11.5
- 依赖项升级:将 compose-go 提升到 v1.13.1
- 依赖项升级:将 golang 提升到 1.20.2
错误修复和增强
- 修复了 `alpha watch` 命令的 panic。Pull Request 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
错误修复和增强
- 在 `up` 命令中引入了 `--wait-timeout`。修复了 compose#10269
- 使 `compose service --hash` 输出按服务名称排序。Pull Request 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` 模式中添加了文件删除/重命名处理。Pull Request compose#10386
- 在 `watch` 模式中引入了 `ignore` 属性。Pull Request 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 集合的问题。Pull Request compose#10372
- 使用配置的名称分隔符定义一次性容器名称。修复了 compose#10354
- 修复了重新创建容器时并发映射读/写问题。修复了 compose#10319
- Compose 现在支持 `stop` 和 `rm` 命令的空运行模式。Pull Request compose#10257
- Compose 现在支持 `pull` 命令的空运行模式。Pull Request compose#10341
- Compose 现在支持 `push` 命令的空运行模式。Pull Request compose#10355
- Compose 现在支持 `exec` 命令的空运行模式。Pull Request compose#10252
- Compose 现在支持 `restart` 命令的空运行模式。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
错误修复和增强
- 为 `compose create` 命令引入了 `--remove-orphans`。修复了 compose#9718
- 当终端太小时,缩短了 TTY 输出。修复了 compose#9962
- 添加了 `remove-orphans` 功能到运行。修复了 compose#9718
- 引入了实验性 `watch` 命令。Pull Request compose#10163
- Compose 现在允许使用 `-t` 分配 TTY。修复了 compose#10161
- 引入了实验性 `dry-run` 命令。Pull Request compose#10173
- 更新了文档以解释配置并行性的方法。Pull Request compose#10198
- 使 `logs` 命令与 docker CLI 对齐,通过将 `-n` 别名为 `--tail`。修复了 compose#10199
- 添加了对 `docker compose build --push` 的支持。Pull Request compose#10148
- 为 `compose create` 命令添加了 `--scale`。修复了 compose#10208
- 将 `convert` 重命名为 `config` 以与 Compose V1 UX 对齐。Pull Request compose#10214
- Compose 现在将代理配置作为构建参数传递。修复了 compose#8797
- 修复了 `compose up` 中的解析问题,通过忽略非 Compose 创建的容器。修复了 compose#10162
- 修复了日志格式化程序初始化中的 goroutine 泄漏。修复了 compose#10157
- 修复了当所有正在运行的容器都已停止时 Compose 日志不退出的问题。Pull Request compose#10181
- 修复了文档以反映 `docker compose ps` 与 `docker ps` 对齐。Pull Request compose#10195
- 修复了未找到远程 Buildx 驱动程序的问题。修复了 compose#9893
- 改进了重新创建服务容器时的日志记录。Pull request compose#10236
- 修复了一个问题,现在 Compose 只等待与等待条件相关的容器。修复了 compose#10200
- Compose 现在阻止赋值给 nil 映射中的条目。修复了 compose#10244
- 为 Cucumber 测试添加了专门的 GitHub Actions 工作流程。Pull Request compose#10165
- 在切换到紧凑日志模式时清理了 TUI 行。修复了 compose#10201
- 添加了 Tilt watcher 以在 watch 模式下检测代码更改。Pull Request compose#10218
- Compose 现在支持 `kill` 命令的空运行模式。修复了 compose#10210
- Compose 现在支持 `pause` 命令的空运行模式。修复了 compose#10217
- Compose 现在支持 `cp` 命令的空运行模式。修复了 compose#10235
2.15.1
2023-01-09更新
- 依赖项升级以修复 Golan CVE-2022-27664 和 CVE-2022-32149
错误修复和增强
- 添加了对 UTS 命名空间的支持。修复了 compose#8408
- 修复了未设置过滤器时的过滤问题。修复了 roadmap#418
- 修复了构建步骤期间并发映射写入问题。Pull Request compose#10151
- 修复了 stdin 不是终端时的问题。修复了 compose#9739
2.15.0
2023-01-05更新
- 依赖项升级:将 compose-go 提升到 v1.8.1
- 依赖项升级:将 cli-docs-tool 提升到 0.5.1
错误修复和增强
- 添加了 `service.build` 部分中 `privileged` 属性的支持。Pull Request compose#10112
- 引入了 `--ignore-buildable` 以在拉取时忽略可构建镜像。修复了 compose#8805
- 引入了 `--no-attach` 以忽略某些服务输出。修复了 compose#8546
- 修复了当 `driver:none` 设置时 `logs` 的问题。修复了 compose#9030
- Compose 现在依赖于 dockerCLI.streams。Pull Request compose#10082
- 修复了服务哈希必须排除副本的问题。修复了 compose#10077
- Compose 现在根据项目检查服务名称,而不是运行中的容器。修复了 compose#9951
- 修复了安全选项支持(seccomp 和 unconfined)。修复了 compose#9505
- 修复了在使用 compose config 时如果源文件较小则文件为空的问题。修复了 compose#10121
- 修复了 `compose up` 未应用 `--pull` 的问题。修复了 compose#10125
- Compose 不仅应该忽略自动删除的容器,还应该忽略“正在删除”的孤立容器。Pull Request compose#10136
- Compose 根据 `--parallel` 限制构建并发。修复了 compose#9091
2.14.2
2022-12-20更新
- 依赖项升级:将 containerd 提升到 1.6.14
错误修复和增强
- 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 logs 上的竞态条件。修复了 compose#8880
- 通过将 `projectOptions` 重命名为 `ProjectOptions` 使其公开。修复了 compose#100102
2.14.1
2022-12-15更新
- 依赖项升级:将 Go 提升到 1.19.4
- 依赖项升级:将 containerd 提升到 1.6.12
错误修复和增强
- 添加了 `--parallel` 以限制并发引擎调用。Pull Request compose#10030
- 区分了 `up` 日志中的 stdout 和 stderr。修复了 compose#8098
- 使 `compose ps` 输出与 `docker ps` 对齐。修复了 compose#6867
- 为 push 命令添加了 `--include-deps`。Pull Request compose#10044
- 在 `compose up` 上引入了 `--timestamp` 选项。修复了 compose#5730
- Compose 现在在从环境中创建 secret 时应用 uid/gid。Pull Request 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
错误修复和增强
- 为服务定义添加了 `oom_score_adj` 字段。Pull Request compose#10019
- 为 tmpfs 挂载权限添加了 mode 字段。Pull Request compose#10031
- Compose 现在仅在中断时停止由 `up` 启动的服务。修复了 compose#10028
- Compose 现在为目标服务加载隐式配置文件。修复了 compose#10025
- 如果设置了 `service.platform`,Compose 不要求设置 `service.build.platforms`。修复了 compose#10017
- 如果设置了 `--ansi=never`,则在 buildx 镜像构建期间使用纯文本输出。修复了 compose#10020
- `COMPOSE_IGNORE_ORPHANS` 环境变量现在行为更一致。修复了 compose#10035
- Compose 现在在 `convert` 中使用正确的镜像名称分隔符。修复了 compose#9904
- 修复了 `run` 用于使用 `network_mode: service:NAME` 的服务。修复了 compose#10036
2.13.0
2022-11-23更新
- 依赖项升级:将 containerd 提升到 1.6.10
- 依赖项升级:将 docker-credential-helpers 提升到 v0.7.0
- 更新 CI 依赖项。Pull Request compose#9982
错误修复和增强
- 为 `convert` 命令添加了 `no-consistency` 选项。修复了 compose#9963
- 为 `run` 命令添加了 `build` 选项。修复了 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 更新到文档存储库路径
将 compose-go 从 1.5.1 升级到 1.6.0
更新到 go 1.19.2,以解决 CVE-2022-2879、CVE-2022-2880、CVE-2022-41715
错误修复和增强
- 在推送镜像时添加了
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
错误修复和增强
- 修复了一个错误,以防止在有效的环境变量值上出现“无效模板”错误。修复了 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错误修复和增强
- 修复了一个错误,以在服务具有
volumes_from时保留depends_on条件。修复了 compose#9843 - 修复了一个错误,以在构建期间如果未构建平台,则保留服务级别定义的平台。由 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
- 修复了
down与--rmi。修复了 compose#9655 - 修复了 docker-compose convert 在使用 --no-interpolate 选项时将 $ 转换为 $$ 的问题。修复了 compose#9160
- 修复了
build.go直接访问自定义标签导致 panic 的问题。请参阅 compose#9810 - 将新加载的环境变量应用于“DockerCli”和“APIClient”。修复了 compose#9210
- 在
compose start [services]上只尝试启动指定的服务。修复了 compose#9796 compose#9807 - 标记已构建的镜像,以便在
down时可靠清理。修复了 compose#9655
有关完整的更改日志或附加信息,请查看 Compose 存储库 2.11.0 发布页面。
2.10.2
2022-08-26错误修复和增强
- 正确遵守
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。
错误修复和增强
- 修复了当未设置
pull_policy时镜像拉取被跳过的问题。修复了 compose#9773。 - 恢复了发布工件中的
.sha256校验和文件。修复了 compose#9772。 - 删除了使用 --exit-code-from 时显示退出代码的错误消息。修复了 compose#9782。
- 修复了
compose pull,使其即使在本地存在镜像时,如果tag=latest也会拉取镜像。 - CI:修复了校验和检查并恢复了单独的校验和文件。
有关完整的更改日志或附加信息,请查看 Compose 存储库 2.10.1 发布页面。
2.10.0
2022-08-19新增
- 将新加载的环境变量应用于
DockerCli和APIClient。修复了 compose#9210。 - 添加了对 windows/arm64 和 linux/riscv64 的支持。
更新
- 将 Dockerfile 语法更新到最新稳定版并重命名了 docs 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。
错误修复和增强
- 将环境变量优先级恢复为操作系统高于
.env文件。修复了 compose#9737。 - 更新了用法字符串以保持一致性。
- 在 Windows 上不区分大小写地解析环境变量。修复了 compose#9431。
- 修复了
compose up,以便在发出停止信号时不会停止依赖容器。这与 v1 的行为保持一致。 - 修复了 compose#9696。
- 修复了 start/restart/pause/unpause 命令,以便如果从 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。
错误修复和增强
- 覆盖了
compose version的父命令 PreRun 代码。修复了 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 来提高代码质量。
错误修复和增强
- 修复了插值错误消息输出。修复了 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 存储库 2.8.0 发布页面。
2.7.0
2022-07-20新增
- 在构建步骤中添加了对环境秘钥的支持。修复了 compose#9606。
更新
- 依赖项升级:将 go 提升到 1.18.4。
- 依赖项升级:将 compose-go 提升到 v1.2.9。
错误修复和增强
- 网络:防止因重复名称引起的问题。修复了 moby/moby#18864。
- 修复了
compose up和compose down命令中关闭网络名称的问题。修复了 compose#9630。 - 在运行
compose up --wait时,对一次性容器使用了适当的依赖条件。修复了 compose#9606。 - 修复了环境变量扩展。
- 在一致性检查中验证了依赖服务是否存在。修复了 compose#8910。
- 修复了环境变量值中的哈希使用。修复了 compose#9509。
- Docker Build:为经典构建器添加了修复,以遵守依赖顺序。修复了 compose#8538。
- 修复了空字符串参数导致的 panic。修复了 compose-switch#35。
- 修复了 start/restart,使其不会影响一次性容器。修复了 compose#9509。
- 修复了当
volumes_from目标是容器而不是服务时保留容器引用。修复了 compose#8874。 - build.go:添加了修复以在
CustomLabels映射为nil时进行初始化。 - 添加了新目标,以在运行 e2e 测试之前构建 Compose 二进制文件。
- CI:发布了工作流,以在 docs 存储库上打开一个带有最新更改的 PR。
- e2e:添加了
ps的测试。 - e2e:拆分暂停测试并添加更多用例。
- e2e:添加更多 start/stop 测试用例。
有关完整的更改日志或附加信息,请查看 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。
错误修复和增强
- 添加了容器创建请求的链接。修复了 #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 存储库 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。
错误修复和增强
- 修复了
compose up,使其仅附加到项目中声明的、启用了配置文件的服务。修复了 #9286。 - 修复了从多个服务拉取相同镜像时闪烁的提示。修复了 #9469。
- 修复了 compose go 以将 .env 文件导入到 OS 环境,以允许通过此文件设置变量(例如 DOCKER_BUILDKIT)。修复了 #9345。
- 修复了本地失败的
TestLocalComposeUp。 - 修复了本地运行的 make
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:现在如果没有要删除的内容,则以 status=0 退出。修复了 #9426。 - 修复了使用 --no-log-prefix 选项时日志输出行中多余的空格。修复了 #9464。
- 澄清了传递多个 compose 文件时的默认工作目录。
- cp 命令:默认行为是将文件复制到服务的所有容器。
有关完整的更改日志或附加信息,请查看 Compose 存储库 2.5.1 发布页面。
2.5.0
2022-04-29错误修复和增强
- 修复了
compose down命令在指定-p标志时出现的 panic。修复了 #9353。 - 将新创建的项目作为输入传递给启动服务(
docker compose up)。修复了 #9356。 - 将 docker-compose 文件中 links 下声明的服务包含为隐式依赖项。修复了 #9301。
- 对
docker compose pull命令进行了更改,以遵守定义的策略:1)跳过配置为pull_policy: never的服务;2)忽略具有现有镜像且pull_policy: missing的服务。修复了 #3660。 - 不再忽略从资源构建项目时的错误,以防止
downpanic。修复了 #9383。 - 强制项目名称为小写。修复了 #9378。
- 添加了对构建时秘钥的支持。修复了 #6358。
- 更改了
compose-go,以允许(重新)构建卷字符串,以便在无法使用挂载时由引擎bindAPI 使用。修复了 #9380。 - 提供了 checksums.txt 文件并添加了
--binary以允许在不同操作系统中进行验证。修复了 #9388。 - 添加了更改,以便检查本地拉取镜像的 ID 并将其持久化到
com.docker.compose.image。修复了 #9357。 - 修复了 IPAM 网关设置问题。修复了 #9330。
- 添加了对 ppc64le 架构的 docker compose 二进制文件的支持。
- 修复了
--no-TTY文档中的搜索/替换拼写错误。
有关完整的更改日志或附加信息,请查看 Compose 存储库 2.5.0 发布页面。
2.4.1
2022-04-04错误修复和增强
- 在运行带有
--rm flag的容器时,将--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。
错误修复和增强
- 将交互式标志 '-i' 从 Compose CLI 传递到 Docker CLI 以运行 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 命令。
- 修复了并行运行 start-stop 端到端测试时的竞态条件。
- 删除了有关过时警告的代码。
- 供应商: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。
- 从运行和 exec 命令的 -i 和 -t 选项中删除了“已弃用”提及。这些选项默认启用并正在使用中。修复了 #9229。
- 从 --filter 标志中删除了“已弃用”提及,以保持与其他命令的一致性。
- 删除了运行 'docker compose kill' 时获取原始 compose.yaml 文件的需要。
更新
- 依赖项更新:将 github.com/spf13/cobra 从 1.3.0 提升到 1.4.0。Cobra 库不再需要 Viper 及其所有间接依赖项 请参阅 cobra 的发布页面。
- 依赖项更新:将 buildx 从 v0.7.1 提升到 v0.8.0。
错误修复和增强
- 恢复了 '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-03-8 至 2022-04-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)
错误修复
使
--env-file相对于当前工作目录。现在,通过--env-file设置的环境文件路径相对于当前工作目录,并覆盖位于项目目录中的默认.env文件。通过更新 Compose 架构修复了缺少服务属性
storage_opt的问题。修复了构建
extra_hosts列表格式。删除了
exec上的附加错误消息。
杂项
- 将
compose.yml和compose.yaml添加到默认文件名列表。
1.28.5
(2021-02-26)
错误
修复了在 shelling out 到 SSH 客户端时出现的 OpenSSL 版本不匹配错误(通过将 docker-py 提升到包含修复的 4.4.4)。
为原生构建器添加了缺少的构建标志:
platform、isolation和extra_hosts。删除了原生构建上的信息消息。
修复了当服务日志驱动程序设置为“none”时日志获取错误。
1.28.4
(2021-02-18)
错误修复
- 通过将 docker-py 提升到 4.4.3 修复了 SSH 端口解析。
杂项
- 将 Python 提升到 3.7.10。
1.28.3
(2021-02-17)
错误修复
修复了 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)
错误修复
恢复到 Python 3.7,以进行 Linux 静态构建
为
docker-compose logs|up --no-log-prefix添加 bash 补全
杂项
- CI 设置更新
1.28.0
(2021-01-20)
特性
添加了通过设备请求支持 NVIDIA GPU。
添加了对服务配置文件的支持。
将 SSH 连接方式更改为 Docker CLI,方法是 shelling out 到本地 SSH 客户端。设置
COMPOSE_PARAMIKO_SSH=1环境变量以启用旧行为。添加了一个标志以禁用日志前缀。
添加了一个标志以控制 ANSI 输出。
Docker Compose 现在在构建镜像时使用原生 Docker CLI 的
build命令。设置COMPOSE_DOCKER_CLI_BUILD=0环境变量以禁用此功能。
错误修复
默认情况下将
parallel_pull=True。恢复了非 Swarm 模式下配置的警告。
在定义
project_dir时考虑了--file。修复了
compose up上的服务附加错误。
杂项
添加了使用情况指标。
将架构与 COMPOSE 规范同步。
改进了缺少强制环境变量的失败报告。
将
attrs提升到 20.3.0。将
more_itertools提升到 8.6.0。将
cryptography提升到 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)
错误修复
删除了绑定挂载的路径检查。
修复了端口渲染,以输出非 v1 的长格式语法。
将协议添加到 Docker socket 地址。
1.27.3
(2020-09-16)
错误修复
在
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)
错误修复
- 修复了
docker-compose run容器附加上的错误。
1.27.1
(2020-09-10)
错误修复
修复了指定
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。
错误修复
在不需要构建时忽略构建上下文路径验证。
通过将 docker-py 提升到 4.3.1 修复了浮点数到字节的转换。
修复了设置 deploy 部分时的 scale 错误。
修复了
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)
错误修复
- 在使用 pip 安装时强制
docker-py4.2.2 为最低版本。
1.26.1
(2020-06-30)
特性
- 将
docker-py从 4.2.1 提升到 4.2.2。
错误修复
在使用 pip 安装时强制
docker-py4.2.1 为最低版本。修复了非 docker 端点的上下文加载。
1.26.0
(2020-06-03)
特性
添加了
docker context支持。向
setup.py添加了缺少的测试依赖项ddt。为命令
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。
错误修复
正确转义来自
env_files的值。将 compose-schemas 与上游 (docker/cli) 同步。
删除了 exec 命令上的
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。
- 将服务规模限制为
deploy.placement.max_replicas_per_node字段指定的大小。
- 将服务规模限制为
1.25.4
(2020-02-03)
错误修复
修复了 CI 脚本以强制 MacOS 的最小版本为 10.11。
修复了 docker-compose exec 在环境文件中没有值的键。
1.25.3
(2020-01-23)
错误修复
修复了 CI 脚本以强制使用 Python3 进行编译。
更新了发布页面上的二进制文件的 sha256。
1.25.2
(2020-01-20)
新功能
- Docker Compose 现在允许使用
COMPOSE_COMPATIBILITY环境变量进行兼容性选项。
错误修复
修复了当
version字段设置为无效值时导致 Docker Compose 崩溃的问题。当在 version 字段中使用无效值时,Docker Compose 现在显示错误消息。修复了当在终端外部运行命令时导致 Docker Compose 消息渲染不正确的问题。
1.25.1
(2020-01-06)
错误修复
在使用
APIError解释创建和启动容器之前将其解码为 Unicode。Docker Compose 丢弃值为空的
com.docker.compose.filepaths标签。这通常发生在标签源自 stdin 时。添加 OS X 二进制文件作为目录,以解决 macOS Catalina 二进制文件扫描导致启动时间过慢的问题。
在容器模式下使用
script/run/run.sh运行时传递了HOME环境变量。Docker Compose 现在会报告无法拉取但需要构建的镜像。
1.25.0
(2019-11-18)
新功能
通过将
CLICOLOR环境变量更改为0来将 no-colors 设置为 true。将工作目录、配置文件和 env 文件添加到服务标签。
添加了 ARM 构建依赖项。
添加了 BuildKit 支持(使用
DOCKER_BUILDKIT=1和COMPOSE_DOCKER_CLI_BUILD=1)。将 Paramiko 提升到 2.6.0 版本。
添加了以下标签:
docker-compose:latest、docker-compose:<version>-alpine和docker-compose:<version>-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版本。对于
down尝试删除不存在的镜像的情况,严重性降低为warning。在可能的情况下,强制使用改进的 API 字段进行项目事件。
更新了
setup.py以适应现代pypi/setuptools,并删除了pandoc依赖项。删除了不再需要的
Dockerfile.armhf。
错误修复
使容器服务颜色具有确定性,包括删除红色。
修复了非 ASCII 字符错误(仅限 Python 2)。
将镜像大小调整为十进制格式,以与 Docker CLI 对齐。
通过 Python POSIX 支持获取
tty大小。修复了相同文件
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 的支持。向
docker-compose ps添加了--all标志,以在命令输出中包含已停止的一次性容器。为
ps --all|-a添加了 bash 补全。添加了对 credential_spec 的支持。
向
bash和zsh补全中的docker build选项添加了--parallel。
错误修复
修复了一个错误,即 Compose 在尝试从私有注册表拉取镜像时未能正确处理某些有效的凭据助手。
修复了一个问题,即
docker-compose start在容器创建之前输出具有误导性。Compose 将不再接受从环境文件获取的变量名中的空格。这与 Docker CLI 行为匹配。
如果服务尝试在 volumes 部分声明重复的挂载点,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)
错误修复
恢复了 1.23.0 中将随机字符串附加到
docker-compose up创建的容器名称的更改,导致寻址问题。注意由
docker-compose run创建的容器将继续使用随机生成的名称,以避免并行运行期间的冲突。修复了一个问题,即某些
dockerfile路径在 Windows 上尝试构建时会意外失败。修复了一个错误,即构建上下文 URL 在 Windows 上无法构建。
修复了一个错误,即
run和exec命令对--host参数的某些可接受值会失败。修复了一个问题,即服务定义中
storage_opt和isolation键的覆盖未正确应用。修复了一个错误,即某些无效的 Compose 文件在验证期间会引发未捕获的异常。
1.23.1
(2018-11-01)
错误修复
修复了一个错误,即使用早于
1.23.0版本的 Compose 创建的容器时会导致意外崩溃。修复了一个问题,即
--project-directory标志的行为会因所使用的子命令而异。
1.23.0
(2018-10-30)
重要提示
此版本中 Compose 创建的容器的默认命名方案已从 <project>_<service>_<index> 更改为 <project>_<service>_<index>_<slug>,其中 <slug> 是随机生成的十六进制字符串。请确保在升级之前相应地更新依赖于旧命名方案的脚本。
特性
崩溃后重新启动的容器的日志现在将出现在
up和logs命令的输出中。向
docker-compose config命令添加了--hash选项,允许用户打印每个服务配置的哈希字符串,以方便滚动更新。向
docker-compose build命令添加了--parallel标志,允许 Compose 同时构建多达 5 个镜像。即使在并行拉取多个镜像时,
pull命令的输出也会报告状态/进度。对于具有多个名称的镜像,Compose 现在将尝试匹配
images命令输出中服务配置中存在的名称。
错误修复
修复了一个问题,即同一服务的并行
run命令会因名称冲突而失败。修复了一个问题,即 Windows 客户端上长度超过 260 个字符的路径会导致
docker-compose build失败。修复了一个错误,即尝试将
/var/run/docker.sock挂载到适用于 Windows 的 Docker Desktop 会导致失败。Compose 现在使用
--project-directory选项来确定在哪里查找.env文件。docker-compose build在尝试使用 gcloud 凭据助手提供的凭据拉取镜像时不再失败。修复了
docker-compose up中的--exit-code-from选项,使其即使在监视的容器不是退出原因时也始终报告实际退出代码。修复了一个问题,该问题在某些情况下会阻止重新创建服务,即卷被映射到与 Dockerfile 中为该镜像声明的卷相同的挂载点。
修复了一个错误,该错误导致具有多个网络的哈希配置不一致,导致某些服务不必要地重新启动。
修复了一个错误,该错误会导致名称包含一个或多个点字符的服务变量替换失败。
修复了使用 Compose 的容器化版本时管道处理问题。
修复了一个错误,该错误导致 Compose 文件中
external: false的条目在docker-compose config的输出中打印为external: true。修复了一个错误,该错误导致在没有定义 image 键的服务上发出
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
- 添加了对服务、网络和卷配置中扩展字段的支持
错误修复
修复了一个错误,该错误在设置
DOCKER_DEFAULT_PLATFORM时阻止了某些 Compose 文件的部署Compose 将不再尝试创建以无效字符开头的容器或卷
修复了几个错误,这些错误阻止了 Compose 命令与使用旧版 Compose 创建的容器正常工作
修复了当源文件包含可附加网络时,
docker-compose config与--compatibility-mode标志一起使用时的输出问题修复了一个错误,该错误导致
gcloud凭据存储在 UNIX 上与 Compose 二进制文件一起使用时无法正常工作修复了一个错误,该错误导致在 Windows 上尝试通过非 HTTPS TCP 连接操作时出现连接错误
修复了一个错误,该错误导致在 Windows 上 Dockerfile 位于构建上下文的子目录中时构建失败
修复了一个问题,该问题阻止了 Windows 上 UTF-8 BOM 编码的 Compose 文件的正确解析
修复了使用
docker-compose build时.dockerignore文件中双通配符 (**) 模式的处理问题修复了一个错误,该错误导致旧版
.dockercfg文件中的 auth 值被忽略docker-compose build将不再尝试创建以无效字符开头的镜像名称
1.21.2
(2018-05-03)
错误修复
- 修复了一个错误,该错误阻止了 IPAM 配置中的 ip_range 属性通过验证
1.21.1
(2018-04-27)
错误修复
在 1.21.0 中,我们引入了对项目名称进行清理以在资源名称中内部使用的方式的更改。这导致在操作现有已部署应用程序时出现问题,因为其名称已更改。此版本正确检测使用“旧版”命名约定的资源。
修复了一个问题,即使用绝对路径指定上下文内的 Dockerfile 会失败,尽管它是有效的。
修复了一个错误,该错误错误地检测到 IPAM 选项更改,从而阻止了重新部署。
v2 文件的验证现在正确检查 IPAM 配置的结构。
改进了对 Windows 上凭据存储的支持,包括使用
.exe以外的扩展名的二进制文件。有效扩展名列表由PATHEXT环境变量的内容决定。修复了一个错误,该错误导致 Compose 生成包含重复元素的无效绑定,并附带一些 v3.2 文件,从而在部署期间在 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。
错误修复
Compose 现在检查卷的配置是否与远程卷匹配,如果检测到不匹配,则会报错。
修复了一个错误,该错误导致 Compose 在尝试并行创建多个一次性容器时引发意外错误。
修复了在使用
docker-machine config为exec和run命令生成 TLS 标志时参数解析错误的问题。修复了一个错误,即空默认值(例如
${VAR:-})的变量替换会打印不正确的警告。改进了当 Compose 文件的编码与系统不匹配时的弹性。建议用户尽可能使用 UTF-8。
修复了一个错误,该错误导致 Swarm 中的外部 overlay 网络被 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 创建的容器填充环境变量和构建参数向
docker-compose run添加了--use-aliases标志,指示应将服务配置中声明的网络别名用于正在运行的容器向
docker-compose pull添加了--include-deps标志docker-compose run现在在收到SIGHUP后会杀死并移除正在运行的容器docker-compose ps现在显示容器的健康状态(如果可用)向
exec、run和up命令添加了长格式--detach选项
错误修复
修复了
.dockerignore处理,特别是关于绝对路径和最后一行优先级规则修复了一个问题,即 Compose 在使用 Docker For Mac 连接到 Engine 时会进行代价高昂的 DNS 查找
修复了 1.19.0 中引入的一个错误,该错误导致 Compose 不会遵守默认证书路径
修复了一个错误,即 Compose 会错误地检查符号链接的目标是否可访问(当作为构建上下文的一部分时)
修复了一个错误,即包含空白行的
.dockerignore文件会导致 Compose 在 Windows 上报错修复了一个错误,即
--tls*和--host选项在交互式run和exec命令中无法正确遵守security_opt配置中的seccomp:<filepath>条目现在正确地将文件内容发送到引擎up和down操作的 ANSI 输出不应再影响错误的行改进了对非 Unicode 区域设置的支持
修复了在 Windows 上,当用户主目录名称包含非 ASCII 字符时发生的崩溃
修复了在构建过程中,由于构建上下文中的文件具有负
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键,允许用户定义指定服务连接到每个网络的顺序
所有格式
新增
--renew-anon-volumes(简写-V)到up命令,防止 Compose 从以前的容器中恢复匿名卷的卷数据新增同时并行操作的数量限制,这应该可以防止意外耗尽服务器资源。默认值为 64,可以通过
COMPOSE_PARALLEL_LIMIT环境变量进行配置新增
--always-recreate-deps标志到up命令,以强制重新创建依赖服务以及依赖所有者新增
COMPOSE_IGNORE_ORPHANS环境变量,以放弃孤立容器检测并抑制警告新增
COMPOSE_FORCE_WINDOWS_HOST环境变量,以强制 Compose 解析卷定义,就像 Docker 主机是 Windows 系统一样,即使 Compose 本身当前在 UNIX 上运行Bash 补全现在应该能够更好地区分正在运行、已停止和已暂停的服务
错误修复
修复了当构建上下文包含不可读文件或 FIFO 对象时,
build命令会报告连接错误的错误。这些文件类型现在将得到适当处理修复了围绕交互式
run/exec会话的各种问题。修复了同时使用环境变量和 CLI 标志设置 TLS 选项时,部分配置会被忽略的错误
修复了 Compose 忽略 DOCKER_TLS_VERIFY 环境变量的错误
修复了
up命令中的-d和--timeout标志被错误地标记为不兼容的错误修复了如果与上一个容器关联的镜像已被删除,服务的重新创建会中断的错误
修复了更新挂载的目标会在 Compose 尝试重新创建关联服务时导致中断的错误
修复了在使用 3.2 版的 Compose 文件中,使用扩展语法声明的
tmpfs卷会被错误地创建为匿名卷的错误修复了类型转换错误会打印堆栈跟踪而不是优雅退出的错误
修复了一些与 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
错误修复
修复了 Compose 仍根据旧版引擎行为处理服务主机名的问题,导致包含点的服务主机名被截断
修复了 Compose 认为端口的
X-Y:Z语法无效的错误修复了 CLI 日志记录导致重复消息和不优雅输出的问题
修复了在使用多个 Compose 文件时
stop_grace_period被忽略的错误修复了在使用未标记镜像时
docker-compose images会崩溃的错误修复了有效的
${VAR:-}语法会导致 Compose 出错的错误修复了使用 UTF-8 BOM 的
env_file条目读取不正确的错误修复了缺失的 secret 文件会在其位置生成一个空目录的错误
修复了 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命令已弃用,取而代之的是此新选项
错误修复
修复了
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 控制字符
错误修复
修复了嵌套的
extends指令未正确解析,导致“文件未找到”错误的错误修复了
.dockerignore解析的几个问题修复了启用 TTY 的服务的日志打印不正确并导致
MemoryError异常的问题修复了在 Python 3 上打印应用程序日志时有时会被
UnicodeEncodeError异常中断的错误docker-compose config输出中的$字符现在已正确转义修复了运行
docker-compose top有时会因未捕获的异常而失败的错误修复了
docker-compose pull使用--parallel标志在失败时会返回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:<name>值。新增对服务定义中
storage_opt参数的支持。此选项不适用于 v3 格式
所有格式
新增
--quiet标志到docker-compose pull,抑制进度输出CLI 输出的一些改进
错误修复
通过
docker-compose run的--volume标志指定的卷现在补充了服务定义中声明的卷,而不是替换它们修复了使用多个 Compose 文件会取消 Compose 文件中定义的比例值的错误。
修复了 Compose 不遵循
config.json文件中的credHelpers条目的问题修复了在 Python 3 环境中使用多个 Compose 文件和端口声明会导致失败的错误
修复了用户环境中存在一些与代理相关的选项会阻止 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中--user标志的简写-uCompose 文件和远程网络之间标签的差异现在将打印警告,而不是阻止重新部署。
错误修复
修复了运行
docker-compose run命令时,服务依赖项会重新缩放到其默认比例的错误修复了
docker-compose rm带有--stop标志在提供要删除的服务列表时行为不正常的错误修复了在 build 部分中,当使用多个 Compose 文件时
cache_from会被忽略的错误。修复了在使用多个 Compose 文件时阻止将同一端口绑定到不同 IP 的错误。
修复了如果覆盖文件具有
.yaml扩展名,Compose 不会选择它们的错误修复了 Windows Engine 上网络被错误地标记为需要重新创建的错误
修复了声明端口的服务会在某些版本的 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的支持
错误修复
修复了通过
-f选项提供给 Compose 的路径未正确解析的错误修复了端口部分中的
ext_ip::target_port表示法被错误地标记为无效的错误修复了在使用
-d标志时exec命令有时不会将控制权返回给终端的问题修复了 v3.2 文件的
config命令输出中缺少 secret 的错误修复了如果无法连接互联网,
docker-compose会挂起的问题修复了通过
-f标志传递包含 Unicode 字符的路径会导致 Compose 崩溃的问题修复了如果 Compose 文件包含外部 secret,
docker-compose config的输出会无效的问题修复了如果 Compose 安装在 Python 3 环境中,将
--exit-code-from与up一起使用会失败的错误修复了使用
tmpfs和volumes组合重新创建容器会导致无效配置状态的错误
1.12.0
(2017-04-04)
新功能
Compose 文件版本 3.2
引入
docker-compose.yml规范的 3.2 版本新增对服务构建部分中
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将在任何容器退出时退出,退出代码与指定服务的退出代码相对应新增
--parallel选项到docker-compose pull,启用同时拉取多个服务的镜像新增
--build-arg选项到docker-compose build新增
--volume <volume_mapping>(简写-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。
错误修复
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)
错误修复
修复了阻止 secret 配置正确加载的错误
修复了如果配置文件包含 secret 定义,
docker-compose config命令会失败的错误修复了某些 Linux 发行版上的 Compose 会选择并加载过时版本的 requests 库的问题
修复了构建文件夹中套接字类型的文件会导致
docker-compose在尝试构建该服务时崩溃的问题修复了
.dockerignore文件中不识别递归通配符模式**的问题。
1.11.1
(2017-02-09)
错误修复
- 修复了 Compose 解析器未将 3.1 文件格式识别为有效的错误
1.11.0
(2017-02-08)
新功能
Compose 文件版本 3.1
- 引入
docker-compose.yml规范的 3.1 版本。此版本需要 Docker Engine 1.13.0 或更高版本。它引入了对 secret 的支持。有关详细信息,请参阅文档
Compose 文件版本 2.0 及更高版本
- 引入
docker-compose top命令,用于显示 Compose 管理的不同服务正在运行的进程。
错误修复
修复了扩展定义健康检查字典的服务会导致
docker-compose出错的错误。修复了在使用多个 Compose 文件时,服务定义中的
pid条目会被忽略的问题。
1.10.1
(2017-02-01)
错误修复
修复了 docker-py 旧版本存在会导致运行 Compose 时意外崩溃的问题
修复了项目使用多个 compose 文件时健康检查依赖项会丢失的问题
修复了一些导致
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选项的支持。
错误修复
彩色输出现在在 Windows 上正常工作。
修复了 docker-compose run 在 Windows 上以交互模式设置链接别名失败的错误。
Compose 创建的网络现在始终可附加(Compose 文件 v2.1 及更高版本)。
修复了
COMPOSE_CONVERT_WINDOWS_PATHS的假值(0、false、空值)被解释为 true 的错误。修复了 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 或更高版本一起使用。- 新增对
docker-compose.yml中设置卷标签和网络标签的支持。 - 新增对服务定义中
isolation参数的支持。 - 新增对服务网络定义中链接本地 IP 的支持。
- 新增对变量插值中 shell 样式内联默认值的支持。支持的形式有
${FOO-default}(如果 FOO 未设置则回退)和${FOO:-default}(如果 FOO 未设置或为空则回退)。
- 新增对
新增对服务定义中
group_add和oom_score_adj参数的支持。新增对网络定义中
internal和enable_ipv6参数的支持。Compose 现在在 Windows 上默认使用
npipe协议。如果
driver值不冲突,覆盖logging配置现在将正确合并options映射。
错误修复
修复了 Windows 上
npipe协议支持相关的几个错误。修复了在 Windows Server 上使用 Docker 时,Windows 路径转换不正确的问题。
修复了空
restart值有时会导致引发异常的错误。修复了包含 Unicode 字符的服务日志有时会导致错误的问题。
修复了环境变量中的 Unicode 值有时在检索时会引发 Unicode 异常的错误。
修复了 Compose 会错误地检测覆盖网络配置不匹配的问题。
1.8.1
(2016-09-22)
错误修复
修复了使用凭证存储的用户无法访问其私有镜像的错误。
修复了使用身份令牌进行身份验证的用户无法访问其私有镜像的错误。
修复了 Docker 配置文件中的
HttpHeaders条目会导致 Compose 在尝试构建镜像时崩溃的错误。修复了卷绑定声明中 Windows 路径处理相关的几个错误。
修复了 Compose 有时在尝试从引擎读取流式响应时崩溃的错误。
修复了 Compose 在流式传输容器日志时遇到 API 错误会导致崩溃的问题。
修复了 Compose 会错误地尝试输出引擎 API 不处理的驱动程序的日志的问题。
修复了
docker-machine config命令的选项未被 Compose 正确解释的错误。修复了同时运行大量服务时与 Docker Engine 的连接有时会失败的错误。
修复了 Compose 在运行
bundle命令时有时会打印误导性建议消息的问题。修复了在项目初始化阶段,Compose 未能正确处理连接错误的错误。
修复了遇到连接超时时会出现误导性错误的错误。
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 版本。
错误修复
修复了 Compose 在项目的根目录是目录时会错误地尝试读取
.env的错误。docker-compose run -e VAR现在将VAR从 shell 传递到容器,与docker run -e VAR类似。改进了涉及多个 Compose 文件时多个服务子键的配置合并。
修复了包含 Windows 驱动器的卷映射有时解析不正确的错误。
修复了 Windows 环境中主机的根目录的卷映射解析不正确的错误。
修复了如果指定了外部网络,
docker-compose config会输出无效 Compose 文件的错误。修复了未设置的构建参数会被分配一个包含
'None'的字符串,而不是预期的空值的问题。修复了 Windows 上的是/否提示在接收输入之前不显示的错误。
修复了在 Windows 上没有
-d选项尝试docker-compose exec会以堆栈跟踪退出的错误。目前这仍然会失败,但应该会优雅地失败。修复了
docker-compose up期间的错误会在进程结束时显示不相关的堆栈跟踪的错误。docker-compose create和docker-compose start在出现问题时会显示更具描述性的错误消息。
1.7.1
(2016-05-04)
错误修复
修复了
docker-compose config对于 v1 文件的输出是无效配置文件的错误。修复了
docker-compose config不会检查链接有效性的错误。修复了
docker-compose help不会按预期输出可用命令和通用选项列表的问题。修复了在使用
docker-compose logs时按服务过滤不适用于新创建服务的问题。修复了在使用 Python 3 的 Compose 时,未更改的服务有时会在 up 阶段重新创建的错误。
修复了在 up 阶段遇到的 API 错误不会被 Compose 识别为失败状态的问题。
修复了 Compose 会因为非 Windows 平台上未定义的异常名称而引发 NameError 的错误。
修复了有时与 Compose 一起安装了错误版本的
docker-py的错误。修复了
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_*变量设置默认值。新增
--remove-orphans标志到docker-compose up和docker-compose down,用于删除从 Compose 文件中删除的服务的容器。新增
--all标志到docker-compose rm,以包含docker-compose run创建的容器。这将在下一个 Compose 版本中成为默认行为。新增对
docker客户端使用的所有相同 TLS 配置标志的支持:--tls、--tlscert、--tlskey等。Compose 文件现在支持
tmpfs和shm_size选项。新增
--workdir标志到docker-compose rundocker-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命令,用于在正在运行的容器中执行进程。
错误修复
docker-compose down现在删除docker-compose run创建的容器。当使用 tty 时,如果在
up期间达到超时,则会显示更合适的错误。修复了
docker-compose down在某些资源已被删除时会中止的错误。修复了网络别名更改不会触发服务重新创建的错误。
修复了当卷已存在时,打印创建新卷的日志消息的错误。
修复了中断
up不总是关闭容器的错误。修复了在 v1 Compose 文件格式中扩展服务时,
log_opt和log_driver未正确继承的错误。修复了构建参数的空值会导致文件验证失败的错误。
1.6.2
(2016-02-23)
- 修复了连接到启用 TLS 的 Docker Engine 会因证书验证错误而失败的错误。
1.6.1
(2016-02-23)
错误修复
修复了多次重新创建容器会导致新容器在没有以前卷的情况下启动的错误。
修复了 Compose 会将未设置环境变量的值设置为空字符串,而不是没有值的键的错误。
当 Compose 需要更新版本的 Docker API 时,提供更好的错误消息。
添加缺少的配置字段
network.aliases,允许为服务设置网络范围的别名。修复了
run不会启动depends_on中列出的服务的错误。修复了在使用 extends 或多个 Compose 文件时,
networks和network_mode未合并的错误。修复了服务别名中的错误,其中短容器 ID 别名只包含 10 个字符,而不是以前版本中使用的 12 个字符。
添加了创建新命名卷时缺少的日志消息。
修复了在使用
extends或多个 Compose 文件时,build.args未合并的错误。修复了在 null 值或不正确的类型而不是映射时进行配置验证的一些错误。
修复了没有
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标志。
错误修复
修复了阻止在
expose字段中使用端口范围的验证错误。修复了阻止在
entrypoint字段中使用数组(如果它们包含重复条目)的验证错误。修复了与
extends一起使用时ulimits被忽略的错误。修复了阻止在
extra_hosts中使用 ipv6 地址的错误。修复了当从多个 Compose 文件中包含
extends时,它会被忽略的错误。修复了 Compose 文件中定义容器卷时不正确的警告。
修复了阻止
up和logs的强制关闭行为的错误。修复了使用默认网络驱动程序时,
None被打印为网络驱动程序名称的错误。修复了使用
dns或dns_search的字符串形式会导致错误的错误。修复了容器在重新启动状态时被报告为“已启动”的错误。
修复了 DOCKER_CERT_PATH 未正确设置时令人困惑的错误消息。
修复了如果容器使用非标准日志驱动程序(或根本没有),附加到容器会失败的错误。
1.5.2
(2015-12-03)
修复了破坏
environment和env_file与extends一起使用的错误,并导致没有值的环境变量键具有None值,而不是来自主机环境的值。修复了 1.5.1 中的回归问题,该问题导致在重新创建容器时错误地发出关于卷的警告。
修复了阻止构建使用
ADD <url>的Dockerfile的错误修复了
docker-compose restart阻止其启动已停止容器的错误。修复了 SIGTERM 和 SIGINT 的处理,以正确停止容器
新增对使用 url 作为
build值 的支持改进了
expose选项的验证
1.5.1
(2015-11-12)
新增
--force-rm选项到build。新增
ulimit选项到 Compose 文件中的服务。修复了如果服务从使用
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被忽略并被上一个容器的容器卷屏蔽时,添加警告。改进了在没有 tty 的情况下运行
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"]将把名为mydatavolume的卷挂载到容器内的/data路径。如果
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 在拉取单个服务镜像失败时继续,而不是中止。您现在可以使用
ipc选项在docker-compose.yml中指定 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 镜像安装和运行。这是一个实验性功能。
错误修复
Docker 守护进程支持的所有
log_driver选项值现在都受 Compose 支持。docker-compose build现在可以成功针对 Swarm 集群运行。
1.4.2
(2015-09-22)
- 修复了 1.4.1 版本中的回归问题,该问题导致
docker-compose up没有-d选项会立即退出。
1.4.1
(2015-09-10)
错误修复
- 某些配置更改(特别是
links、volumes_from和net的更改)未正确触发容器重新创建作为docker-compose up的一部分。 docker-compose up <service>显示所有服务的日志,而不仅仅是指定服务的日志。- 具有自定义容器名称的容器在日志中显示为
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标志已弃用,现在无效。修复了一个错误,该错误导致
docker-compose build在构建依赖于私有 Hub 镜像或来自私有注册表的镜像时失败。修复了一个错误,该错误导致 Compose 在 Docker 守护进程尚未完成删除容器时崩溃。
修复了两个错误,该错误导致 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)
错误修复
- 当由旧版 Compose 运行
docker-compose run创建的一次性容器存在时,docker-compose run会因名称冲突而失败。Compose 现在会在您有此类剩余容器时显示错误,并告诉您如何删除它们。 - Compose 未读取在新位置
~/docker/config.json中创建的 Docker 身份验证配置文件,因此对私有注册表的身份验证会失败。 - 当容器附加了伪 TTY 时,其在
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)
错误修复
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,允许您指定日志驱动程序。
错误修复
docker-compose run的输出有时会被截断,尤其是在 Jenkins 下运行时。- 在
docker-compose.yml中更改卷配置后,服务的卷有时不会更新。 - 对第三方注册表的身份验证有时会失败。
- 如果服务设置了
restart策略,docker-compose run --rm将无法删除容器。 - 如果服务在主机上公开了特定端口号,
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选项,它允许服务继承另一个配置文件中另一个服务的配置。这对于在应用程序之间共享公共配置或为不同环境配置同一应用程序非常有用。这是文档。当将 Compose 与 Swarm 集群一起使用时,相互依赖的容器将共同调度到同一个节点。这意味着大多数 Compose 应用程序现在开箱即用,只要它们不使用
build。当将 Compose 与 Swarm 集群一起使用时,重复调用
docker-compose up现在可靠地工作。传递给
build的目录、传递给env_file的文件名以及传递给volumes的卷主机路径现在被视为相对于配置文件的目录,而不是运行docker-compose的目录。在大多数情况下,它们是相同的,但如果您使用-f|--file参数指定另一个目录中的配置文件,这是一个破坏性变更。服务现在可以使用
net: container:<service>共享另一个服务的网络命名空间。在解决依赖关系时会考虑
volumes_from和net: container:<service>条目,因此docker-compose up <service>将正确启动<service>的所有依赖关系。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 语句的 Dockerfile 的错误。
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环境变量通过 TLS 连接到 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)
- 新增
--no-cache选项到fig build,它会绕过缓存,就像docker build --no-cache一样。 - 修复了
dns:fig.yml 选项,该选项导致 fig 出错。 - 修复了 fig 无法在 Python 2.6 下启动的错误。
- 修复了日志流式传输错误,该错误偶尔会导致 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:fig.yml现在支持volumes_from。指定服务和容器的所有卷都将被挂载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在存在没有命令的容器时的错误。
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)
- 为
fig run添加-T选项以禁用伪 TTY。(#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 套接字流式传输容器输出时引发错误的问题(#7)
非常感谢 @tomstuart、@EnTeQuAk、@schickling、@aronasorman 和 @GeoffreyPlitt。
0.0.2
(2014-01-02)
- 改进文档
- 尝试除了
localhost之外,连接到tcp://localdocker:4243和 UNIX 套接字上的 Docker。 - 改进
fig up行为 - 为
fig rm添加确认提示 - 添加
fig build命令
0.0.1
(2013-12-20)
首次发布。