Docker Compose 發行說明
如需更詳細的資訊,請參閱 Compose 儲存庫中的發行說明。
2.39.2
2025-08-04錯誤修正與增強功能
- 修正構建輸出中的多項渲染問題
- 修正使用
bake時無法套用pull和no_cache屬性的問題 - 移除執行
up指令時顯示未明確附加服務的日誌
更新
- 依賴更新:將 docker engine 和 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 engine 和 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 engine 和 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指令 - 移除綁定掛載 (bind mounts) 的
publish限制 - 修正將 docker socket 掛載到不需要它的容器的問題
- 修正 bake 在輸出時卡住的問題
更新
- 依賴更新:將 compose-go 升級至 v2.7.0
- 依賴更新:將 docker engine 和 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 輸出格式 - 修正沒有監控支援的專案中使用
w捷徑時造成的崩潰 (panic) - 修正 Windows 上 bake 中繼資料檔案的權限問題
- 修正提供者服務啟動時造成的崩潰錯誤
更新
- 依賴更新:將 compose-go 升級至 v2.6.5
- 依賴更新:將 buildx 升級至 v0.25.0
- 依賴更新:將 buildkit 升級至 v0.23.0
2.37.1
2025-06-12錯誤修正與增強功能
- 修正 Windows 上 bake 中繼資料檔案的權限問題
- 修正提供者服務啟動時造成的崩潰錯誤
- 將
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 engine 和 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 - 引入構建
--check旗標 - 修正解析 Compose 檔案時的多項崩潰問題
更新
- 依賴更新:將 compose-go 升級至 v2.6.2
- 依賴更新:將 docker engine 和 cli 升級至 v28.1.0
- 依賴更新:將 containerd 升級至 2.0.5
- 依賴更新:將 buildkit 升級至 v0.21.1
2.35.1
2025-04-17錯誤修正與增強功能
- 修正綁定掛載相關的問題
更新
- 依賴更新:將 compose-go 升級至 v2.6.0
- 依賴更新:將 docker engine 和 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時,由環境變數定義的機密支援問題 - 修正磁碟區掛載處理,確保綁定掛載在所有場景下都能正確運作
更新
- 依賴更新:將 docker engine 和 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 engine 和 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) - 修正導航選單的問題
- 改進使用唯讀服務且非檔案機密/設定時的錯誤訊息
更新
- 依賴更新:將 docker engine 和 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
- 修正二進位檔案的 provenance 並產生 SBOM
- 現在使用 docs 上游驗證的主分支
- 新增 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監控動作 - Compose 現在會在磁碟區或網路設定變更時重建容器
- 修正對
mac_address的支援 - 修正
pull --quiet只隱藏進度而非全域狀態的問題 - 修正只有
rebuild監控動作需要建置宣告的問題 - Compose 現在會透過 Compose 選單啟用時記錄
watch設定錯誤
2.31.0
2024-11-28更新
- 依賴更新:將 compose-go 升級至 v2.4.5
- 依賴更新:將 docker engine 和 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 engine 和 cli 升級至 v27.3.1
錯誤修正與增強功能
- 引入服務勾子 (hooks) 支援。
- 新增 alpha 版
generate指令。 - 新增
export指令。 - 新增對在 Compose 檔案中使用
devices進行 CDI 裝置請求的支援。 - 大量錯誤修正。
2.29.7
2024-09-20錯誤修正與增強功能
- 修正使用掛載 API 進行綁定掛載時的回歸問題。
2.29.6
2024-09-19更新
- 依賴更新:將 docker engine 和 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 engine 和 cli 升級至 v27.3.0-rc.1
錯誤修正與增強功能
- 修正重啟發散的依賴項時服務未停止的問題。
- 修正 OTEL 客戶端上的潛在
nil指標錯誤。
2.29.3
2024-09-12更新
- 依賴更新:將 compose-go 升級至 v2.2.0
- 依賴更新:將 docker engine 和 cli 升級至 v27.2.1
錯誤修正與增強功能
- 現在允許將綁定掛載與
rebuild結合使用watch。 - 修正將
--no-deps與up一起使用時重建容器的錯誤。 - 修正重新附加容器時未關閉串流的錯誤。
- 恢復使用
-V或--renew-anon-volumes時重建匿名磁碟區的功能。
2.29.2
2024-08-16更新
- 依賴更新:將 compose-go 升級至 v2.1.6
- 依賴更新:將 docker engine 和 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。 - 修正導致單個容器的 Compose 處理程序在
sync-restart監控動作上停止的問題。
2.29.1
2024-07-23更新
- 依賴更新:將 compose-go 升級至 v2.1.5。
- 依賴更新:將 docker engine 和 cli 升級至 v27.1.0。
錯誤修正與增強功能
- 增強 JSON 進度事件,加入更多欄位。
2.29.0
2024-07-17更新
- 依賴更新:將 compose-go 升級至 v2.1.4
- 依賴更新:將 docker engine 和 cli 升級至 v27.0.3
- 依賴更新:將 buildx 升級至 0.16.0
- 依賴更新:將 buildkit 升級至 0.15.0
- 依賴更新:將 containerd 升級至 1.7.19
錯誤修正與增強功能
- 新增 JSON 串流進度寫入器。
- 為
docker compose watch指令新增--prune旗標。 - 服務選取後,現已排除不必要的資源。
- 容器中未設定值的空變數現在會被取消設定。
2.28.1
2024-06-24錯誤修正與增強功能
- 修正
v2.28.0中損壞的進度顯示(在有 TTY 模式可用時)。
2.28.0
2024-06-21更新
- 依賴更新:將 compose-go 升級至 v2.1.3
- 依賴更新:將 docker engine 和 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 engine 和 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 engine 和 cli 升級至 v26.1.3
- 依賴更新:將 buildx 升級至 0.14.1
- 依賴更新:將 containerd 升級至 1.7.17
錯誤修正與增強功能
- 在 CLI 中新增導航選單,您可以在其中開啟 Docker Desktop 中的 Compose 檔案
- 為
docker compose up中的--menu旗標新增說明文件 - 修正與
--no-interpolate一起使用--resolve-image-digests的錯誤 - 您現在可以使用本地
.env檔案來覆蓋COMPOSE_*環境變數
2.27.0
2024-04-24更新
- 依賴更新:將 golang 升級至 1.21.9
- 依賴更新:將 compose-go 升級至 v2.1.0
- 依賴更新:將 docker engine 和 cli 升級至 v26.1.0
錯誤修正與增強功能
- 引入
--abort-on-container-failure旗標 - 引入
--all-resources以不排除服務未使用的資源 - 引入對
build.entitlements的支援 - 修正一個錯誤,使 Docker Compose 在執行
docker compose down/stop -p時忽略缺失的容器 - 修正相容模式下對
--flag=value語法的支援
2.26.1
2024-03-29更新
- 依賴更新:opencontainers/image-spec v1.1.0
錯誤修正與增強功能
- 在輸出中新增映像拉取失敗原因
- 修正使用
--no-build和--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的環境載入 - 修正合併標籤/網路時的崩潰
- 使用
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
錯誤修正與增強功能
- 修正當專案檔案透過
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時暴露服務連接埠的日誌。 - 修正內嵌和環境定義的設定,使其掛載在 /<id> 下,直到設定明確目標為止。
- 修正
--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 升級
錯誤修正與增強功能
- 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回歸問題。 - 修正當外部網路位於監控服務上時,「Application failed to start after update」的問題。
- 修正
--pull說明文件。 - 透過在 cmd/compose/build.go 中加入換行符號來修正顯示。
- 過濾應用後,Compose 呈現為靜默。
- 從 docker-compose up 輸出中剝離專案字首。
2.23.0
2023-10-18更新
- 依賴更新:將 compose-go 升級至 v1.20.0
- 依賴更新:將 containerd 升級至 1.7.7
錯誤修正與增強功能
- 新增對發佈指令的乾執行 (dry-run) 支援
- 新增
COMPOSE_ENV_FILES環境變數以傳遞環境檔案列表 - 新增
sync+restart動作到compose watch - 預設使
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 檔案的支援。
- 新增對使用
include從 Git 儲存庫載入遠端 Compose 檔案的支援(實驗性)。 - 修正構建期間不正確的代理變數。
- 修正容器退出時截斷的容器日誌。
- 修正使用
include和--profile時的「no such service」錯誤。 - 修正使用
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 上未檢查目標機密路徑的錯誤。
- 修正使用
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 模式問題。
- 修正服務擁有多個網路時隨機缺失網路的錯誤。
- 修正機密檔案權限值以符合 Compose 規範。
- 修正
no-deps旗標未套用的問題。 - 修正一些原始碼註解。
- 修正
--index未設定選取時的錯誤。 - 修正等待 e2e 測試中的處理程序洩漏。
- 改進一些測試速度。
2.19.1
2023-06-29更新
- 依賴更新:將 compose-go 升級至 v1.15.1
錯誤修正與增強功能
- 修正
compose up時偶發的「container not connected to network」錯誤。 - 修正
compose build時的「please specify build context」錯誤。 - 如果服務
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」策略。 - 修正一個競爭條件,在一個容器退出時等待其他容器。
- 新增警告告知使用者 uid,gid,mode 未對
build.secrets實作。 - 修正
watch中的一個錯誤,該錯誤監視整個構建上下文而不是僅監視已設定的路徑。 - Compose 現在按建立日期對容器進行排序,以便先縮減較舊的容器。
- 修正 Windows 環境下文件產生任務中的錯誤。
- 更新說明文件以反映 Dry Run 模式功能已完整。
- 改進網路標籤不匹配時的診斷訊息。
- 修正一個錯誤,該錯誤在不涉及構建時渲染
Building部分。 - 修正代碼覆蓋率指標中的錯誤。
- 新增 OTEL 初始化。
- 新增 GitHub Action 以使用 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 現在允許使用者宣告構建機密目標
- 修正一個錯誤,導致容器在設定未變更時被重建
- 修正當
--parallel與大量依賴服務一起使用時的競爭條件 - Compose 現在檢查本機映像是否符合所需的平台
- 修正使用
--project-name執行compose down時的本機映像移除 - Compose 現在偵測嘗試移除網路的活動端點並跳過並發出警告
- 移除不必要的 [] 輸出
- Compose 偵測到 Windows 終端不是
console.File以避免崩潰 --parallel現在優先於COMPOSE_PARALLEL_LIMIT- Compose 現在在 Swarm 停用時報告找不到外部網路
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指令上的崩潰。拉取請求 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輸出按服務名稱排序。拉取請求 compose#10278 - Compose 現在渲染緊湊的 TUI 進度報告以監控層下載。拉取請求 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 現在使用進度寫入器來顯示複製狀態。拉取請求 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
- 使用設定的名稱分隔符定義 oneoff 容器名稱。修正 compose#10354
- 修正重建容器時的並發 map 讀/寫問題。修正 compose#10319
- Compose 現在支援
stop和rm指令的乾執行模式。拉取請求 compose#10257 - Compose 現在支援
pull指令的乾執行模式。拉取請求 compose#10341 - Compose 現在支援
push指令的乾執行模式。拉取請求 compose#10355 - Compose 現在支援
exec指令的乾執行模式。拉取請求 compose#10252 - Compose 現在支援
restart指令的乾執行模式。拉取請求 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功能新增至 run。修正 compose#9718 - 引入實驗性
watch指令。拉取請求 compose#10163 - Compose 現在允許透過
-t分配 TTY。修正 compose#10161 - 引入實驗性
dry-run指令。拉取請求 compose#10173 - 更新說明文件以解釋設定並行處理的方法。拉取請求 compose#10198
- 透過為
--tail設定-n別名,使logs指令與 docker CLI 對齊。修正 compose#10199 - 新增對
docker compose build --push的支援。拉取請求 compose#10148 - 將
--scale新增至compose create指令。修正 compose#10208 - 將
convert更名為config以與 Compose V1 UX 對齊。拉取請求 compose#10214 - Compose 現在將代理設定作為構建參數傳遞。修正 compose#8797
- 透過忽略非 Compose 建立的容器,修正
compose up中的解析錯誤。修正 compose#10162 - 修正日誌格式化程式初始化中的 goroutine 洩漏。修正 compose#10157
- 修正當所有執行中的容器都已停止時,compose 日誌無法退出的問題。拉取請求 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指令的乾執行模式。修正 compose#10210 - Compose 現在支援
pause指令的乾執行模式。修正 compose#10217 - Compose 現在支援
cp指令的乾執行模式。修正 compose#10235
2.15.1
2023-01-09更新
- 依賴更新以修復 Golang CVE-2022-27664 和 CVE-2022-32149
錯誤修正與增強功能
- 新增對 UTS 命名空間的支援。修正 compose#8408
- 修正未設定過濾器時的過濾問題。修正 roadmap#418
- 修正構建步驟期間的並發 map 寫入問題。拉取請求 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屬性的支援。拉取請求 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 config 的空檔案問題。修正 compose#10121
- 修正
compose up時未套用--pull的問題。修正 compose#10125 - Compose 不僅應忽略自動移除的容器,還應忽略孤立容器的「removal in progress」。拉取請求 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 日誌上的競爭條件。修正 compose#8880
- 透過將其重新命名為 ProjectOptions 使 projectOptions 公開。修正 compose#100102
2.14.1
2022-12-15更新
- 依賴更新:將 Go 升級至 1.19.4
- 依賴更新:將 containerd 升級至 1.6.12
錯誤修正與增強功能
- 新增
--parallel以限制並發引擎呼叫。拉取請求 compose#10030 - 區分
up日誌中的 stdout 和 stderr。修正 compose#8098 - 使
compose ps輸出與docker ps對齊。修正 compose#6867 - 為 push 指令新增
--include-deps。拉取請求 compose#10044 - 引入
compose up上的--timestamp選項。修正 compose#5730 - Compose 現在從環境建立機密時套用 uid/gid。拉取請求 compose#10084
- 修正等待 attached-dependencies 時的死鎖。修正 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欄位。拉取請求 compose#10019 - 新增 tmpfs 掛載權限的 mode 欄位。拉取請求 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 - 修正使用
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 - 在
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 - 從 stale bot 處理程序中排除標記為
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
錯誤修正與增強功能
- 修正一個錯誤,防止對有效環境變數值產生「invalid template」錯誤。修正 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
- Deps:修正圖形遍歷期間的競爭條件。修正 compose#9014
- CI 現在在 Windows 和 macOS 上執行,包括透過 Docker Desktop 進行的 E2E 測試
- 當
service.platform不是service.build.platforms的一部分時新增更多資訊 - GitHub Workflows 安全強化
如需完整的變更日誌或更多資訊,請檢查 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
- 修正帶有
--rmi的down。修正 compose#9655 - 修正使用 --no-interpolate 選項時將 $ 轉為 $$ 的 docker-compose convert。修正 compose#9160
- 修正
build.go直接存取自訂標籤導致崩潰。請參閱 compose#9810 - 將新載入的 envvars 套用到「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 語法至最新穩定版,並重新命名說明文件 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。
錯誤修正與增強功能
- 將環境變數優先順序恢復為 OS 高於
.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。
錯誤修正與增強功能
- 覆寫
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新增至 linter 改善了程式碼品質。
錯誤修正與增強功能
- 修復了插值錯誤訊息的輸出。修復 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。
- 修復了環境值中雜湊 (hash) 的使用。修復 compose#9509。
- Docker Build:修正了經典建置器需遵守相依性順序的問題。修復 compose#8538。
- 修復了因空字串參數引起的程式崩潰 (panic)。修復 compose-switch#35。
- 修復了啟動/重新啟動功能,使其不會影響一次性容器。修復 compose#9509。
- 修復了當
volumes_from指向容器而非服務時,能保留容器參照的問題。修復 compose#8874。 - build.go:修正了在
nil時初始化CustomLabels對應表的問題。 - 新增了在執行端對端 (e2e) 測試前建置 Compose 二進位檔案的新目標。
- CI:釋出了自動化工作流程,用於在文件儲存庫開啟包含最新變更的 PR。
- e2e:新增了
ps的測試。 - e2e:拆分了暫停 (pause) 測試並新增更多案例。
- 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。
錯誤修正與增強功能
- 新增了容器建立請求的連結。修復 #9513。
- 修復了
compose run僅啟動直接相依服務的問題。修復 #9459。 - 修復了使用
--no-deps選項時compose up出現的 'service not found' 錯誤。修復 #9427。 - 修復了
compose down需遵守COMPOSE_REMOVE_ORPHANS環境變數的問題。修復 #9562。 - 修復了專案層級的繫結掛載 (bind mount) 磁碟區問題。修復 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 解組 (unmarshal) 為容器摘要。
- e2e:修復了子測試並阻擋平行執行不安全的測試。
- e2e:將測試指令的環境變數與系統環境變數隔離。
- e2e:修復了虛假的
ps失敗。 - e2e:確保所有 compose 指令皆與獨立模式相容。
- e2e:改進了失敗時的測試輸出。
欲查看完整變更日誌或取得更多資訊,請造訪 Compose 儲存庫 2.6.1 發布頁面。
2.6.0
2022-05-30新增功能
- 在建置區段中新增了 tags 屬性。在此屬性中,除了 image 屬性中定義的標籤外,還可以定義要套用到最終映像檔的其他標籤。
- 新增了端對端測試,以確保環境變數的優先順序不會出現迴歸 (regression)。
- 新增了 ddev 的端對端測試。
更新
- 相依性更新:將 compose-go 更新至 1.2.6。
- 相依性更新:將 compose-go 更新至 1.2.7。
- 相依性更新:將 golang 更新至 1.18。
錯誤修正與增強功能
- 修復了
compose up僅連接至專案中已啟用設定檔之服務的問題。修復 #9286。 - 修復了從多個服務拉取相同映像檔時閃爍的提示。修復 #9469。
- 修復了 compose go 匯入 .env 檔案至作業系統環境的問題,允許透過此檔案設定變數(例如 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:如果沒有要移除的資源,現在會以狀態碼 0 退出。修復 #9426。 - 修復了使用 --no-log-prefix 選項時,記錄輸出行中多出的空格問題。修復 #9464。
- 釐清了當傳入多個 compose 檔案時,預設工作目錄的定義。
- cp 指令:預設行為改為複製到服務的所有容器。
欲查看完整變更日誌或取得更多資訊,請造訪 Compose 儲存庫 2.5.1 發布頁面。
2.5.0
2022-04-29錯誤修正與增強功能
- 修復了指定
-p旗標時compose down指令崩潰的問題。修復 #9353。 - 將新建立的專案作為啟動服務 (
docker compose up) 的輸入。修復 #9356。 - 將 docker-compose 檔案中 links 下宣告的服務包含為隱含相依項。修復 #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-04錯誤修正與增強功能
- 執行帶有此旗標的容器時,將
--rm旗標值原樣傳遞給 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,以修復處理建置上下文掃描錯誤時可能發生的崩潰。
錯誤修正與增強功能
- 將互動式旗標 '-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 相依性釘選 (pin) 為與 buildx 中相同的版本。
- 將互動式旗標從 Compose CLI 傳遞給 Docker 以執行 exec 指令。
- 修復了平行執行時啟動-停止端對端測試的競爭條件 (race condition)。
- 刪除了關於過時警告的程式碼。
- Vendor: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。
- 從 run 和 exec 指令的 -i 和 -t 選項中移除「已棄用」(Deprecated) 的說明。這些選項預設為啟用且正在使用中。修復 #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 參考文件自動化,以選取程式碼與文件之間的差異 (diff)。
欲查看完整變更日誌或取得更多資訊,請造訪 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)
錯誤 (Bugs)
修復 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 fixes)
使
--env-file相對於目前工作目錄。透過--env-file設定的環境檔案路徑現在相對於目前工作目錄,並會覆寫位於專案目錄中的預設.env檔案。透過更新 Compose 架構修復遺失的服務屬性
storage_opt。修復建置
extra_hosts清單格式。刪除
exec上額外的錯誤訊息。
其他
- 將
compose.yml和compose.yaml新增至預設檔案名稱清單。
1.28.5
(2021-02-26)
錯誤 (Bugs)
修復呼叫 SSH 用戶端時的 OpenSSL 版本不符錯誤(透過升級至包含修復程式的 docker-py 4.4.4)。
將遺失的建置旗標新增至原生建置器:
platform、isolation和extra_hosts。移除原生建置時的資訊訊息。
修復當服務記錄驅動程式設為 'none' 時的記錄擷取錯誤。
1.28.4
(2021-02-18)
錯誤修復 (Bug fixes)
- 透過將 docker-py 升級至 4.4.3 修復 SSH 埠解析問題。
其他
- 將 Python 升級至 3.7.10。
1.28.3
(2021-02-17)
錯誤修復 (Bug fixes)
修復包含開頭 's'/'h' 的 SSH 主機名稱解析,並移除隱藏錯誤的 quiet 選項(透過升級至 docker-py 4.4.2)。
修復
--no-log-prefix選項的鍵值錯誤 (key error)。修復服務設定檔不正確的 CLI 環境變數名稱:使用
COMPOSE_PROFILES取代COMPOSE_PROFILE。修復 fish 完成功能 (completion)。
其他
將 cryptography 升級至 3.3.2。
移除記錄驅動程式過濾器。
如需此版本中修復的 PR 和問題清單,請參閱 Compose 1.28.3。
1.28.2
(2021-01-26)
錯誤修復 (Bug fixes)
Linux 靜態建置恢復至 Python 3.7 版本
為
docker-compose logs|up --no-log-prefix新增 bash 完成功能
其他
- CI 設定更新
1.28.0
(2021-01-20)
功能
新增透過裝置請求支援 NVIDIA GPU。
新增支援服務設定檔。
變更 Docker CLI 的 SSH 連接方式,改為呼叫本地 SSH 用戶端。設定
COMPOSE_PARAMIKO_SSH=1環境變數以啟用舊有行為。新增旗標以停用記錄前綴。
新增 ANSI 輸出控制旗標。
Docker Compose 現在在建置映像檔時使用原生 Docker CLI 的
build指令。設定COMPOSE_DOCKER_CLI_BUILD=0環境變數以停用此功能。
錯誤修復 (Bug fixes)
預設將
parallel_pull設為True。恢復非 swarm 模式下設定的警告。
定義
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 fixes)
移除繫結掛載的路徑檢查。
修復埠渲染以輸出非 v1 的長格式語法。
將協定新增至 Docker 通訊端位址。
1.27.3
(2020-09-16)
錯誤修復 (Bug fixes)
合併
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 fixes)
- 修復
docker-compose run容器連接錯誤。
1.27.1
(2020-09-10)
錯誤修復 (Bug fixes)
修復指定
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 fixes)
不需要建置時忽略建置上下文路徑驗證。
透過 docker-py 升級至 4.3.1 修復浮點數轉位元組轉換。
修復設定 deploy 區段時的擴展錯誤。
修復
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 fixes)
- 使用 pip 安裝時強制
docker-py最低版本為 4.2.2。
1.26.1
(2020-06-30)
功能
- 將
docker-py從 4.2.1 升級至 4.2.2。
錯誤修復 (Bug fixes)
使用 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 fixes)
適當跳脫 (escape) 來自
env_files的值。與上游 (docker/cli) 同步 compose-schemas。
刪除 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)
錯誤修復 (Bug fixes)
修復 CI 指令碼以強制最低 MacOS 版本為 10.11。
修復環境檔案中無值鍵的 docker-compose exec。
1.25.3
(2020-01-23)
錯誤修復 (Bug fixes)
修復 CI 指令碼以強制使用 Python3 編譯。
在發布頁面上更新二進位檔案的 sha256。
1.25.2
(2020-01-20)
新功能
- Docker Compose 現在允許使用
COMPOSE_COMPATIBILITY環境變數設定相容性選項。
錯誤修復 (Bug fixes)
修復導致 Docker Compose 在
version欄位設為無效值時崩潰的問題。現在 Docker Compose 在版本欄位中使用無效值時會顯示錯誤訊息。修復導致 Docker Compose 在終端機外執行指令時呈現訊息錯誤的問題。
1.25.1
(2020-01-06)
Bugfixes
在使用
APIError說明建立和啟動容器之前,將其解碼為 Unicode。Docker Compose 捨棄值為
None的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。將工作目錄、設定檔案和環境檔案新增至服務標籤。
新增 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設定選項的支援。無需拉取映像檔即可解析摘要 (digests)。
將
pyyaml升級至4.2b1版本。降低
down嘗試移除不存在映像檔時的嚴重性為warning。盡可能強制使用改善後的專案事件 API 欄位。
更新
setup.py以適應現代化的pypi/setuptools,並移除pandoc相依性。刪除不再需要的
Dockerfile.armhf。
錯誤修復 (Bug fixes)
使容器服務顏色具有確定性,包括移除紅色。
修復非 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函式中的失敗檢查。修復拉取映像檔後發生的競爭條件。
修復重複掛載點上的錯誤(現在會顯示設定錯誤訊息)。
修復
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。
錯誤修復 (Bug fixes)
修復 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 和 Proxy 設定問題。修復發布指令碼和發布文件中的一些拼字錯誤。
1.23.2
(2018-11-28)
錯誤修復 (Bug fixes)
還原了 1.23.0 的變更,該變更在
docker-compose up建立的容器名稱中附加了隨機字串,導致可定址性問題。注意docker-compose run建立的容器將繼續使用隨機產生的名稱,以避免平行執行期間的衝突。修復了在 Windows 上建置時某些
dockerfile路徑意外失敗的問題。修復建置上下文 URL 在 Windows 上建置失敗的錯誤。
修復
run和exec指令對於--host參數某些可接受值失敗的錯誤。修復服務定義中
storage_opt和isolation鍵的覆寫未正確套用的問題。修復某些無效 Compose 檔案在驗證期間引發未捕獲例外錯誤的錯誤。
1.23.1
(2018-11-01)
錯誤修復 (Bug fixes)
修復與早於
1.23.0版本的 Compose 建立的容器工作時導致意外崩潰的錯誤。修復
--project-directory旗標的行為根據使用的子指令而異的問題。
1.23.0
(2018-10-30)
重要注意事項
在此版本中,Compose 建立的容器預設命名方案已從 <project>_<service>_<index> 變更為 <project>_<service>_<index>_<slug>,其中 <slug> 是隨機產生的十六進位字串。請務必在升級前相應地更新依賴舊命名方案的指令碼。
功能
崩潰後重新啟動的容器記錄現在將出現在
up和logs指令的輸出中。新增
--hash選項至docker-compose config指令,允許使用者為每個服務的設定列印雜湊字串,以促進滾動更新。新增
--parallel旗標至docker-compose build指令,允許 Compose 同時建置最多 5 個映像檔。pull指令的輸出現在即使在平行拉取多個映像檔時也會報告狀態/進度。對於具有多個名稱的映像檔,Compose 現在會嘗試在
images指令的輸出中匹配服務設定中存在的名稱。
錯誤修復 (Bug fixes)
修復同一服務的平行
run指令因名稱衝突而失敗的問題。修復 Windows 客戶端上超過 260 個字元的路徑導致
docker-compose build失敗的問題。修復在使用 Docker Desktop for Windows 掛載
/var/run/docker.sock時失敗的錯誤。--project-directory選項現在由 Compose 用於決定去哪裡尋找.env檔案。在嘗試拉取由 gcloud credential helper 提供憑證的映像檔時,
docker-compose build不再失敗。修復
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
- 新增對服務、網路和磁碟區設定中擴充欄位的支援
錯誤修復 (Bug fixes)
修復當設定
DOCKER_DEFAULT_PLATFORM時阻止某些 Compose 檔案部署的錯誤Compose 將不再嘗試建立具有無效起始字元的容器或磁碟區
修復多個阻止 Compose 指令與使用舊版 Compose 建立的容器正常運作的錯誤
修復啟用
--compatibility-mode旗標時docker-compose config輸出的一個問題,即當來源檔案包含可掛載網路時修復阻止
gcloud憑證儲存庫在 UNIX 上與 Compose 二進位檔案一起使用時正常運作的錯誤修復導致 Windows 上透過非 HTTPS TCP 連線操作時出現連線錯誤的錯誤
修復導致 Windows 上建置失敗的錯誤,如果 Dockerfile 位於建置上下文的子目錄中
修復導致 Windows 上無法正確解析 UTF-8 BOM 編碼 Compose 檔案的問題
修復使用
docker-compose build時.dockerignore檔案中處理雙萬用字元 (**) 模式的問題修復導致舊版
.dockercfg檔案中的驗證值被忽略的錯誤docker-compose build不再嘗試建立以無效字元開頭的映像檔名稱
1.21.2
(2018-05-03)
錯誤修復 (Bug fixes)
- 修復導致 IPAM 設定中 ip_range 屬性無法通過驗證的錯誤
1.21.1
(2018-04-27)
錯誤修復 (Bug fixes)
在 1.21.0 中,我們引入了關於專案名稱如何為資源名稱內部的內部使用進行清理的變更。這在操作現有、已部署且名稱因此變更的應用程式時導致了問題。此版本能正確偵測使用「舊版」命名慣例的資源。
修復使用絕對路徑指定內容內 Dockerfile 會失敗的問題,即使它是有效的。
修復 IPAM 選項變更被錯誤偵測到的錯誤,從而阻止重新部署。
v2 檔案的驗證現在會正確檢查 IPAM 設定的結構。
改進 Windows 上憑證儲存庫的支援,以包含使用
.exe以外副檔名的二進位檔案。有效副檔名的清單由PATHEXT環境變數的內容決定。修復 Compose 在某些 v3.2 檔案中產生包含重複元素的無效繫結的錯誤,導致部署期間在引擎層級引發錯誤。
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 fixes)
Compose 現在檢查磁碟區的設定是否與遠端磁碟區相符,若偵測到不符則報錯。
修復導致 Compose 在嘗試平行建立多個一次性容器時引發意外錯誤的錯誤。
修復使用
docker-machine config為exec和run指令產生 TLS 旗標時的引數解析錯誤。修復使用空白預設值(例如
${VAR:-})的變數替換會列印錯誤警告的錯誤。改進當 Compose 檔案編碼與系統編碼不符時的彈性。鼓勵使用者儘可能使用 UTF-8。
修復 Swarm 中的外部疊加網路 (overlay network) 被 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現在允許使用者取消設定容器的進入點 (entrypoint)在
~/.docker/config.json檔案中找到的 Proxy 設定現在會填入由 Compose 建立容器的環境變數和建置引數新增
--use-aliases旗標至docker-compose run,指示應將服務設定中宣告的網路別名用於執行中的容器新增
--include-deps旗標至docker-compose pulldocker-compose run現在在接收到SIGHUP時會終止並移除執行中的容器docker-compose ps現在會顯示容器的健康狀態(若可用)為
exec、run和up指令新增長格式--detach選項
錯誤修復 (Bug fixes)
修復
.dockerignore處理,特別是關於絕對路徑和最後一行優先規則修復 Compose 在使用 Docker For Mac 連接到引擎時進行昂貴 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鍵,允許使用者定義指定服務連線至每個網路的順序
所有格式
在
up指令中新增--renew-anon-volumes(縮寫-V),防止 Compose 從之前的容器恢復匿名磁碟區的磁碟區資料新增同時平行操作數量的限制,這應防止伺服器的意外資源耗盡。預設值為 64,可使用
COMPOSE_PARALLEL_LIMIT環境變數進行設定在
up指令中新增--always-recreate-deps旗標,以強制重建相依服務以及相依項所有者新增
COMPOSE_IGNORE_ORPHANS環境變數以放棄孤立容器偵測並抑制警告新增
COMPOSE_FORCE_WINDOWS_HOST環境變數以強制 Compose 將磁碟區定義解析為 Docker 主機是 Windows 系統,即使 Compose 本身目前在 UNIX 上執行Bash 完成功能現在應該能更好地區分正在執行、已停止和已暫停的服務
錯誤修復 (Bug fixes)
修復導致
build指令在建置上下文包含不可讀檔案或 FIFO 物件時報告連線錯誤的錯誤。這些檔案類型現在將被適當處理修復圍繞互動式
run/exec工作階段的各種問題。修復同時設定 TLS 選項與環境和 CLI 旗標導致設定部分被忽略的錯誤
修復 DOCKER_TLS_VERIFY 環境變數被 Compose 忽略的錯誤
修復
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
錯誤修復 (Bug fixes)
修復 Compose 仍根據舊版引擎行為處理服務主機名稱的問題,導致包含點的主機名稱被切割
修復
X-Y:Z埠語法被 Compose 視為無效的問題修復導致重複訊息和不優雅輸出的 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 檔案
所有格式
- 在
up指令中新增--no-start,允許使用者建立所有資源(網路、磁碟區、容器)而不啟動服務。create指令已棄用,以利於此新選項
錯誤修復 (Bug fixes)
修復
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 fixes)
修復巢狀
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 格式
所有格式
在
docker-compose pull中新增--quiet旗標,抑制進度輸出對 CLI 輸出進行了一些改進
錯誤修復 (Bug fixes)
透過
docker-compose run的--volume旗標指定的磁碟區現在會補充服務定義中宣告的磁碟區,而非取代它們修復使用多個 Compose 檔案會取消設定 Compose 檔案內定義的 scale 值的錯誤。
修復
config.json檔案中的credHelpers項目未被 Compose 遵守的問題修復使用多個具有埠宣告的 Compose 檔案導致 Python 3 環境失敗的錯誤
修復使用者環境中存在某些與 Proxy 相關的選項導致 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 檔案與遠端網路之間的標籤差異現在將列印警告,而不是阻止重新部署。
錯誤修復 (Bug fixes)
修復執行
docker-compose run指令時服務相依項被重新擴展為預設 scale 的錯誤修復
docker-compose rm與--stop旗標在提供要移除的服務清單時行為不正確的錯誤修復使用多個 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的支援
錯誤修復 (Bug fixes)
修復透過
-f選項提供給 compose 的路徑未正確解析的錯誤修復埠區段中的
ext_ip::target_port標記法被錯誤標記為無效的問題修復使用
-d旗標時exec指令有時無法將控制權返回終端機的問題修復 v3.2 檔案的
config指令輸出中遺失密鑰的錯誤修復若無網路連線
docker-compose會凍結的問題修復透過
-f旗標傳遞包含 Unicode 字元的路徑導致 Compose 崩潰的問題修復若 Compose 檔案包含外部密鑰,
docker-compose config輸出無效的問題修復若 Compose 安裝在 Python 3 環境中,使用
up搭配--exit-code-from會失敗的錯誤修復使用
tmpfs和volumes的組合重建容器導致無效設定狀態的錯誤
1.12.0
(2017-04-04)
新功能
Compose 檔案版本 3.2
引入
docker-compose.yml規格的 3.2 版本新增對服務
build區段中cache_from的支援新增對服務定義中全新展開式 ports 語法的支援
新增對服務定義中全新展開式 volumes 語法的支援
Compose 檔案版本 2.1
- 新增對服務定義中
pids_limit的支援
Compose 檔案版本 2.0 以上
為
docker-compose config新增--volumes選項,可列出該專案宣告的命名卷冊(named volumes)新增對服務定義中
mem_reservation的支援(僅限 2.x 版本)新增對服務定義中
dns_opt的支援(僅限 2.x 版本)
所有格式
新增
docker-compose images指令,可列出當前專案容器所使用的映像檔為
docker-compose rm新增--stop(簡寫為-s)選項,可在移除前先停止執行中的容器為
docker-compose config新增--resolve-image-digests選項,可將每個服務的映像檔版本鎖定為永久的摘要(digest)為
docker-compose up新增--exit-code-from SERVICE選項。使用此選項時,當任何容器退出,docker-compose將會以指定服務的退出代碼進行退出為
docker-compose pull新增--parallel選項,可同時拉取多個服務的映像檔為
docker-compose build新增--build-arg選項為
docker-compose run新增--volume <volume_mapping>(簡寫為-v)選項,以宣告執行時期需掛載的卷冊為
docker-compose新增--project-directory PATH選項,會影響專案的路徑解析當在
docker-compose up中使用--abort-on-container-exit時,導致中止的容器之退出代碼,將成為docker-compose up指令的退出代碼使用者現在可以使用
COMPOSE_PATH_SEPARATOR環境變數,來設定COMPOSE_FILE環境變數值中所使用的路徑分隔字元新增在連接埠映射(port mappings)中支援從連接埠範圍到單一連接埠的寫法,例如
8000-8010:80。
錯誤修復 (Bug fixes)
docker-compose run --rm現在會在執行後移除匿名卷冊,這與docker run --rm的行為一致。修正了覆寫檔案(override files)包含連接埠列表時會引發 TypeError 的錯誤
修正了
docker-compose config的輸出中會遺失deploy金鑰的錯誤修正了擴充或縮減服務時,有時會重複使用過時容器的錯誤
修正了若專案宣告了匿名卷冊,
docker-compose config的輸出會無效的錯誤變數插值(Variable interpolation)現在能正確應用在 Compose 檔案的
secrets區段中secrets區段現在能正確出現在docker-compose config的輸出中修正了部分網路屬性變更時,無法針對先前建立的網路偵測到差異的錯誤
修正了
docker-compose在嘗試寫入已關閉的管道(closed pipe)時會當機的錯誤修正了當 Compose 與指令列 TLS 旗標結合使用時,無法讀取 COMPOSE_TLS_VERSION 值的問題
1.11.2
(2017-02-17)
錯誤修復 (Bug fixes)
修正了導致 secrets 設定無法正確載入的錯誤
修正了當設定檔包含 secrets 定義時,
docker-compose config指令會失敗的錯誤修正了在某些 Linux 發行版上,Compose 會載入過時 requests 函式庫版本的問題
修正了在建置資料夾內的 socket 型別檔案會導致
docker-compose在嘗試建置該服務時當機的問題修正了
.dockerignore檔案中無法辨識遞迴萬用字元**的問題。
1.11.1
(2017-02-09)
錯誤修復 (Bug fixes)
- 修正了 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 fixes)
修正了繼承一個定義了 healthcheck 字典的服務時,會導致
docker-compose出錯的錯誤。修正了使用多個 Compose 檔案時,服務定義中的
pid項目會被忽略的問題。
1.10.1
(2017-02-01)
錯誤修復 (Bug fixes)
修正了存在舊版 docker-py 套件時,執行 Compose 會導致意外當機的問題
修正了使用多個 Compose 檔案時,healthcheck 相依性會遺失的問題
修正了數個導致
config指令輸出無效的問題修正了在 v3 Compose 檔案中加入卷冊標籤(volume labels)會導致錯誤的問題
修正了 Windows 上建置內容路徑(build context paths)包含 Unicode 字元時編碼不正確的問題
修正了容器停止或重啟時,Compose 在串流紀錄(streaming logs)時偶爾會當機的錯誤
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宣告容器相依性時,現在可以設定為等待健康檢查通過後才啟動。請參閱說明文件以獲取更新後的語法。注意此功能不會移植到 v3 Compose 檔案。
新增對服務定義中
sysctls參數的支援新增對服務定義中
userns_mode參數的支援Compose 現在會在其建立的網路和卷冊中加入識別標籤
Compose 檔案版本 2.0 以上
- 新增對服務定義中
stop_grace_period選項的支援。
錯誤修復 (Bug fixes)
彩色輸出現在可以在 Windows 上正常運作。
修正了 docker-compose run 在 Windows 互動模式下無法設定連結別名的錯誤。
由 Compose 建立的網路現在皆為可附加(attachable)狀態(Compose 檔案 v2.1 以上)。
修正了
COMPOSE_CONVERT_WINDOWS_PATHS的偽值(0,false, 空值)會被錯誤解讀為 true 的錯誤。修正了 Windows 上某些 .dockerignore 模式中的正斜線無法被正確解析的錯誤
1.9.0
(2016-11-16)
重大變更
- 在 Windows 上使用 Docker Toolbox/Machine 時,卷冊路徑預設不再轉換為
/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參數的支援。 - 新增對服務網路定義中連結本地(link-local)IP 的支援。
- 新增對變數插值中 Shell 風格內聯預設值的支援。支援格式為
${FOO-default}(若 FOO 未設定則使用預設值)及${FOO:-default}(若 FOO 未設定或為空則使用預設值)。
- 新增對在
新增對服務定義中
group_add和oom_score_adj參數的支援。新增對網路定義中
internal和enable_ipv6參數的支援。Compose 在 Windows 上現在預設使用
npipe協定。覆寫
logging設定時,若driver值不衝突,現在能正確合併options對應表。
錯誤修復 (Bug fixes)
修正了數個 Windows 上關於
npipe協定支援的錯誤。修正了在 Windows Server 上使用 Docker 時,Windows 路徑被錯誤轉換的問題。
修正了空的
restart值有時會導致引發異常的錯誤。修正了包含 Unicode 字元的服務紀錄有時會導致錯誤的問題。
修正了環境變數中的 Unicode 值在擷取時有時會引發 Unicode 異常的錯誤。
修正了 Compose 會錯誤偵測疊加網路(overlay networks)設定不相符的問題。
1.8.1
(2016-09-22)
錯誤修復 (Bug fixes)
修正了使用憑證儲存庫(credentials store)的使用者無法存取私人映像檔的錯誤。
修正了使用識別權杖(identity tokens)進行驗證的使用者無法存取私人映像檔的錯誤。
修正了 Docker 設定檔中若有
HttpHeaders項目,會導致 Compose 在嘗試建置映像檔時當機的錯誤。修正了數個關於卷冊繫結宣告中 Windows 路徑處理的錯誤。
修正了 Compose 在嘗試讀取來自引擎的串流回應時偶爾會當機的錯誤。
修正了 Compose 在串流容器紀錄時遇到 API 錯誤會當機的問題。
修正了 Compose 會錯誤嘗試輸出引擎 API 未處理的驅動程式紀錄的問題。
修正了
docker-machine config指令的選項無法被 Compose 正確解讀的錯誤。修正了同時執行大量服務時,與 Docker Engine 的連線有時會失敗的錯誤。
修正了執行
bundle指令時,Compose 有時會顯示誤導性建議訊息的問題。修正了專案初始化階段中,連線錯誤無法被 Compose 正確處理的錯誤。
修正了遭遇連線逾時(connection timeout)時會出現誤導性錯誤訊息的錯誤。
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 fixes)
修正了 Compose 當專案根目錄中的
.env實際上是一個目錄時,會錯誤嘗試讀取它的錯誤。docker-compose run -e VAR現在會如同docker run -e VAR一樣,將VAR從 Shell 傳遞給容器。改進了涉及多個 compose 檔案時,多個服務子鍵的設定合併方式。
修正了包含 Windows 磁碟機的卷冊對映有時會被錯誤解析的錯誤。
修正了 Windows 環境下,主機根目錄的卷冊對映會被錯誤解析的錯誤。
修正了若指定了外部網路,
docker-compose config會輸出無效 Compose 檔案的錯誤。修正了未設定的建置參數(buildargs)會被賦值為包含
'None'字串,而非預期的空值之問題。修正了 Windows 上「是/否」提示在接收輸入前不會顯示的錯誤。
修正了在 Windows 上嘗試執行不帶
-d選項的docker-compose exec時會以堆疊追蹤(stacktrace)退出的錯誤。目前這仍會失敗,但會以更優雅的方式處理。修正了
docker-compose up期間發生錯誤時,流程結束時會顯示無關堆疊追蹤的錯誤。docker-compose create和docker-compose start在出錯時會顯示更具描述性的錯誤訊息。
1.7.1
(2016-05-04)
錯誤修復 (Bug fixes)
修正了 v1 檔案的
docker-compose config輸出會是無效設定檔的錯誤。修正了
docker-compose config未檢查連結有效性的錯誤。修正了
docker-compose help未按預期輸出可用指令與通用選項列表的問題。修正了使用
docker-compose logs按服務篩選時,不適用於新建立服務的問題。修正了在 Python 3 上使用 Compose 時,未變更的服務有時會在 up 階段被重新建立的錯誤。
修正了 up 階段遇到的 API 錯誤未被 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_*變數設定預設值。為
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 位址。為
docker-compose logs指令新增--follow、--timestamp和--tail旗標。docker-compose up和docker-compose start現在會在可能的情況下並行啟動容器。docker-compose stop現在會依照相依性的相反順序停止容器,而非同時停止。為
docker-compose up新增--build旗標以強制建置新映像檔。若未使用此旗標但自動建置了映像檔,現在會顯示警告。新增
docker-compose exec指令,用於在執行中的容器內執行處理程序。
錯誤修復 (Bug fixes)
docker-compose down現在會移除由docker-compose run建立的容器。在使用 tty 執行
up時發生逾時,會顯示更適當的錯誤訊息。修正了
docker-compose down中若部分資源已被移除會中止的錯誤。修正了網路別名變更無法觸發服務重建的錯誤。
修正了卷冊已存在時,仍會列印建立新卷冊之紀錄訊息的錯誤。
修正了中斷
up時不一定會關閉容器的錯誤。修正了 v1 Compose 檔案格式中繼承服務時,
log_opt和log_driver未正確攜帶的錯誤。修正了空的建置參數(build args)值會導致檔案驗證失敗的錯誤。
1.6.2
(2016-02-23)
- 修正了連線至啟用 TLS 的 Docker Engine 時,會因憑證驗證錯誤而失敗的錯誤。
1.6.1
(2016-02-23)
錯誤修復 (Bug fixes)
修正了多次重建容器會導致新容器啟動時遺失先前卷冊的錯誤。
修正了 Compose 會將未設定的環境變數值設為空字串,而非設為無值的鍵之錯誤。
在 Compose 需要較新版本的 Docker API 時,提供更好的錯誤訊息。
新增遺失的 config 欄位
network.aliases,允許為服務設定網路範圍的別名。修正了
run不會啟動depends_on中列出服務的錯誤。修正了使用繼承或多個 Compose 檔案時,
networks和network_mode未合併的錯誤。修正了服務別名的錯誤,原本容器短 ID 別名僅包含 10 個字元,而非先前版本使用的 12 個字元。
新增建立新命名卷冊時遺失的紀錄訊息。
修正了使用
extends或多個 Compose 檔案時,build.args未合併的錯誤。修正了在應使用對應表時若使用了空值或不正確型別,導致 config 驗證發生問題的錯誤。
修正了若
build區段未包含context,會顯示堆疊追蹤而非有用驗證訊息的錯誤。改進與 Swarm 的相容性,僅在服務使用匿名容器卷冊時,才設定容器對該服務容器前一個執行個體的親和性(affinity)。先前親和性總是在所有容器上設定。
修正了若使用數字而非字串,部分
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 中使用網路功能比使用連結(links)設定更少。請參閱 網路指南 了解如何使用它。
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若沒有任何容器被修改,現在會以錯誤狀態代碼退出。為
up新增了一個--abort-on-container-exit旗標,這會使up在第一個容器退出時停止所有容器並退出。移除對
FIG_FILE、FIG_PROJECT_NAME的支援,且不再讀取fig.yml作為預設 Compose 檔案位置。移除
migrate-to-labels指令。移除
--allow-insecure-ssl旗標。
錯誤修復 (Bug fixes)
修正了一個驗證錯誤,該錯誤阻止在
expose欄位中使用連接埠範圍。修正了一個驗證錯誤,該錯誤阻止在
entrypoint欄位中使用包含重複項目的陣列。修正了一個導致
ulimits在與extends一起使用時被忽略的錯誤。修正了一個阻止
extra_hosts中使用 ipv6 位址的錯誤。修正了一個導致
extends在從多個 Compose 檔案包含時被忽略的錯誤。修正了一個在 Compose 檔案中定義容器卷冊時的不正確警告。
修正了一個阻止
up和logs強制關閉行為的錯誤。修正了一個當使用預設網路驅動程式時,
None會被列印為網路驅動程式名稱的錯誤。修正了一個使用字串形式的
dns或dns_search會導致錯誤的錯誤。修正了一個在容器處於重啟狀態時,仍會回報為「Up」的錯誤。
修正了一個當 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)
為
build新增--force-rm選項。在 Compose 檔案中為服務新增
ulimit選項。修正了一個錯誤,若服務從使用
image變更為使用build,up會出現「service needs to be built」錯誤。修正了一個導致某些終端機上並行作業輸出不正確的錯誤。
修正了一個當
volumes_from的模式變更時,阻止重建容器的錯誤。修正了 1.5.0 中的回歸問題,非 utf-8 Unicode 字元會導致
up或logs當機。修正了 1.5.0 中的回歸問題,當指令因與 Docker daemon 通訊的 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 映像檔執行。這是一項實驗性功能。
錯誤修復 (Bug fixes)
Docker daemon 支援的
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 fixes)
- 某些設定變更(特別是
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選項掛載卷冊時,現在可以傳遞 daemon 支援的任何模式,而不僅僅是:ro或:rw。例如,SELinux 使用者可以傳遞:z或:Z。現在可以使用
docker-compose.yml中的volume_driver選項指定自訂卷冊驅動程式,就像docker run --volume-driver一樣。修正了 Compose 無法從提供純文字(非安全)HTTP 的私人註冊中心拉取映像檔的錯誤。先前用於解決此問題的
--allow-insecure-ssl旗標已被棄用,現在無效。修正了若建置相依於私人 Hub 映像檔或私人註冊中心的映像檔,
docker-compose build會失敗的錯誤。修正了若有 Docker daemon 尚未完成移除的容器,Compose 會當機的錯誤。
修正了兩個錯誤,若
docker-compose.yml中指定的卷冊路徑帶有尾隨斜線,Compose 有時會因「Duplicate bind mount」錯誤而失敗,或無法將卷冊附加到容器。
感謝 @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 fixes)
- 當舊版 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)
錯誤修復 (Bug fixes)
docker-compose build總會在建置前嘗試拉取基礎映像檔。docker-compose help migrate-to-labels失敗並出現錯誤。- 若未指定網路模式,Compose 會將其設定為 "bridge",而不是允許 Docker daemon 使用其設定的預設網路模式。
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一樣,讓您可以指定與build一起使用的替代 Dockerfile。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一樣,讓您可以指定 紀錄驅動程式。
錯誤修復 (Bug fixes)
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選項,使服務能夠繼承另一個設定檔案中服務的設定。這對於在應用程式間共享通用設定,或針對不同環境設定同一個應用程式非常有用。這裡是 說明文件。當與 Swarm 叢集一起使用 Compose 時,相依的容器將被共同排程在同一個節點上。這意味著大多數 Compose 應用程式現在將能直接運作,只要它們不使用
build。當與 Swarm 叢集一起使用 Compose 時,重複呼叫
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旗標,用於暴露指定服務的連接埠。這對於使用互動式偵錯器執行網頁應用程式很有用。您現在可以使用 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 無法建置 Dockerfile 中指向 URL 的 ADD 陳述式之錯誤。
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 daemon。有一個新的
fig port指令,它會輸出服務的主機連接埠繫結,類似於docker port。有一個新的
fig pull指令,用於拉取服務的最新映像檔。有一個新的
fig restart指令,用於重啟服務的容器。Fig 會透過在服務名稱後加上數字來建立服務中的多個容器。例如,
db_1、db_2。為了方便起見,Fig 現在會將第一個容器指定為服務名稱的別名。例如,db。此連結別名也是一個有效的主機名稱,並已加入
/etc/hosts,因此您可以使用主機名稱連接到連結的服務。例如,與其解析環境變數DB_PORT_5432_TCP_ADDR和DB_PORT_5432_TCP_PORT,您可以直接使用主機名稱db和連接埠5432。卷冊定義現在支援
ro模式,擴展~並擴展環境變數。建置時支援
.dockerignore。專案名稱可以使用
FIG_PROJECT_NAME環境變數設定。--env和--entrypoint選項已新增至fig run。Linux 的 Fig 二進位檔現在連結到較舊版本的 glibc,因此可在 CentOS 6 和 Debian Wheezy 上運作。
其他內容
fig ps現在可在 Jenkins 上運作,且對 Docker daemon 的 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 出錯。 - 修復 fig 在 Python 2.6 下無法啟動的錯誤。
- 修復導致 fig 偶爾退出的紀錄串流錯誤。
感謝 @dnephin 和 @marksteve!
0.5.1
(2014-07-11)
- 若服務定義了指令,沒有進一步引數的
fig run [service]將執行它。 - 專案名稱現在預設為包含 fig.yml 的目錄,而非當前工作目錄(若兩者不同)
volumes_from現在能正確處理容器以及服務- 修復
fig up中重建容器時的競爭條件(race condition)
感謝 @ryanbrainard 和 @d11wtq!
0.5.0
(2014-07-11)
Fig 現在在執行
fig run或fig up時會啟動連結。例如,如果您有一個相依於
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"net和workdir選項現在在fig.yml中受支援。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)
- 將服務連結到其自身,以便 run 指令可以存取執行中的服務。(#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 daemon,與官方 Docker 用戶端保持一致(先前為DOCKER_URL)(#19) - 在
fig ps中截斷長指令 (#18) - 填寫指令的 CLI 幫助標語 (#15, #16)
- 當
fig.yml遺失時顯示更友好的錯誤 (#4) - 修復
fig build紀錄的錯誤 (#3) - 修復若步驟在沒有產生輸出的情況下耗時過長,建置會逾時的錯誤 (#6)
- 修復透過 Unix socket 串流容器輸出時引發錯誤的問題 (#7)
非常感謝 @tomstuart, @EnTeQuAk, @schickling, @aronasorman 和 @GeoffreyPlitt。
0.0.2
(2014-01-02)
- 改進說明文件
- 嘗試連線到
tcp://localdocker:4243上的 Docker 以及除了localhost之外的 UNIX socket。 - 改進
fig up行為 - 為
fig rm新增確認提示 - 新增
fig build指令
0.0.1
(2013-12-20)
初始版本。