Docker Compose 發行說明
如需更詳細的資訊,請參閱 Compose 儲存庫中的發行說明。
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 裝置請求的支援。
- 修正了許多錯誤。
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
結合使用。 - 修復了使用
--no-deps
和up
時重新建立容器的錯誤。 - 修復了重新連接容器時未關閉串流的錯誤。
- 使用
-V
或--renew-anon-volumes
時,恢復了匿名磁碟區的重新建立。
2.29.2
2024-08-16更新
- 依賴項升級:將 compose-go 升級至 v2.1.6
- 依賴項升級:將 Docker 引擎和 CLI 升級至 v27.1.2
- 依賴項升級:將 buildx 升級至 v0.16.2
- 依賴項升級:將 buildkit 升級至 v0.15.2
- 依賴項升級:將 Golang 升級至 v1.21.12
- 依賴項升級:將 sys 升級至 v0.22.0
- 依賴項升級:將 flock 升級至 v0.12.1
錯誤修正和增強功能
- 修復了
docker compose kill
使用說明文件。 - 修復了 build.go 中
toAPIBuildOptions
的冗餘條件。 - 修復了 Compose 重新啟動後初始 Watch
sync
的問題,引入了x-initSync
。 - 修復了在
sync-restart
Watch 動作中停止單個容器的 Compose 進程的問題。
2.29.1
2024-07-23更新
- 依賴項升級:將 compose-go 升級至 v2.1.5。
- 依賴項升級:將 Docker 引擎和 CLI 升級至 v27.1.0。
錯誤修正和增強功能
- 使用更多欄位增強 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
旗標。 - 選擇服務後,現在會排除不必要的資源。
- 在容器中取消設定沒有值的空變數。
2.28.1
2024-06-24錯誤修正和增強功能
- 修復了在
v2.28.0
中,TTY 模式可用時進度顯示損壞的問題。
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
命令一起使用時導致watch
進程卡住的錯誤 - 修復了在
.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
錯誤修正和增強功能
- 在輸出中新增了映像檔提取失敗原因
- 修復了使用
--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
的環境載入 - 修復了合併標籤/網路時的 panic 問題
- 在使用
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 中引入的 Docker Desktop for Windows 建置問題。
更新
- Compose 現在使用自定義版本的
fsutils
函式庫。
2.24.2
2024-01-22更新
- 依賴項升級:將 CLI 升級至 25.0.0 GA
- 依賴項升級:將 compose-go 升級至 2.0.0-rc.2
2.24.1
2024-01-18更新
- 依賴項升級:將 CLI 升級至 25.0.0-rc3
- 依賴項升級:將 Docker 升級至 25.0.0-rc3
- 相依性升級:將 compose-go 升級至 2.0.0-rc.1
- 相依性升級:將 containerd 升級至 1.7.12
錯誤修正和增強功能
- 重新設計了
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 現在支援在
push
指令中使用builds.tags
。 - 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
錯誤修正和增強功能
- 為 publish 指令新增了 dry-run 支援
- 新增了
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 檔案的支援。
- 新增了使用
include
從 Git 儲存庫載入遠端 Compose 檔案的支援(實驗性)。 - 修復了構建期間錯誤的代理變數。
- 修復了容器結束時容器日誌被截斷的問題。
- 修復了將
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 上未檢查目標秘密路徑的錯誤。
- 修復了使用
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 端對端測試中的行程洩漏問題。
- 提升了一些測試速度。
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
指令調整了 volumes 旗標的顯示方式。 - 修復了
up
指令中不應忽略缺少depends_on
服務的錯誤。 - 將容器行為的轉發訊號與
docker run
的行為對齊。 - Compose 現在可以偵測網路名稱衝突。
- 修復了關於現有磁碟區的警告訊息中的錯字。
- Compose 現在可以偵測在
compose -p x logs -f
指令後啟動的新服務。 - 修復了使用
compose
作為專案名稱時的錯誤。 - 修復了目錄不存在時
watch
指令中的錯誤。 - 移除了重新啟動或停止服務時預設的 10 秒逾時。
- 修復了
watch
中預設套用「重建」策略的錯誤。 - 修復了在一個容器退出時等待容器的競爭條件。
- 新增了警告,告知使用者 uid、gid、mode 未針對
build.secrets
實作。 - 修復了
watch
監控整個建置上下文而不是僅監控已設定路徑的錯誤。 - Compose 現在會依建立日期排序容器,以便先縮減較舊的容器。
- 修復了 Windows 環境中文檔產生任務的錯誤。
- 更新了文件,以反映 Dry Run 模式功能已完整。
- 改進了網路標籤不符的診斷訊息。
- 修復了在沒有建置的情況下呈現「建置中」區塊的錯誤。
- 修復了程式碼涵蓋率指標中的錯誤。
- 新增了 OTEL 初始化。
- 新增了一個 GitHub action,可以使用 Compose 邊緣版本觸發 Docker Desktop 端對端測試。
- 為 dependabot 新增了更多忽略規則。
2.18.1
2023-05-17錯誤修正和增強功能
- 修復了建置映像檔時發生的「找不到映像檔」錯誤
2.18.0
2023-05-16更新
- 相依性升級:將 compose-go 升級至 v1.13.5
- 相依性升級:將 buildkit 升級至 v0.11.6
- 相依性升級:將 docker 升級至 v23.0.5
錯誤修正和增強功能
- 使用
--dry-run
新增了 dry run 支援 - 新增了
viz
子指令的第一個(alpha)實作 - 新增
--no-path-resolution
以略過相對路徑解析 - 新增
COMPOSE_ANSI
來定義--ansi
的預設值 - 新增
COMPOSE_STATUS_STDOUT
將狀態訊息傳送到 stdout - 修復了 BuildKit progressui 整合
- 修復了阻止事件迴圈收集日誌的錯誤
- 恢復了對
--memory
的支援 - 修復了導致容器在終止後無法停止的錯誤
- Compose 現在允許使用者宣告建置 secret 目標
- 修復了在設定未變更時導致容器重新建立的錯誤
- 修復了
--parallel
與大量相依服務一起使用時的競爭條件 - Compose 現在會檢查本地映像檔是否符合所需平台
- 修復了使用
--project-name
執行compose down
時本地映像檔被移除的問題 - 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 問題。拉取請求 compose#10393 - 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...(svg code)...
- 在
depends_on
中引入了restart
。修正了 compose#10284...(svg code)... - 新增了對
NO_COLOR
環境變數的支援。修正了 compose#10340...(svg code)... - 進度寫入器現在使用
dockercli.Err
串流。修正了 compose#10366...(svg code)... - 在
build
服務設定中新增了對additional_contexts
的支援。修正了 compose#9461...(svg code)... compose#9961...(svg code)... - 在
watch
模式中新增了檔案刪除/重新命名處理。拉取請求 compose#10386...(svg code)... - 在
watch
模式中引入了ignore
屬性。拉取請求 compose#10385...(svg code)... - Compose 現在使用進度寫入器來顯示複製狀態。拉取請求 compose#10387...(svg code)...
- 已更新
-p
/--project-name
旗標的參考文件。已修復 docs#16915 、compose-spec#311compose#9600 compose#10263...(svg code)... - Compose 現在在
watch
模式下會忽略沒有建置區段的服務。已修復 compose#10270...(svg code)... - Compose 現在將設定選項應用於偽子命令。已修復 compose#10286...(svg code)...
- Compose 現在僅管理具有 config_hash 標籤的容器(即由 Compose 建立的容器)。已修復 compose#10317...(svg code)...
- 如果專案名稱在正規化後為空,Compose 現在會觸發錯誤。已修復 compose#10313...(svg code)...
- Compose 現在透過檢查
depends_on
關係僅重新啟動需要的服務。已修復 compose#10337...(svg code)... - 修復了小型終端機上的顯示問題。已修復 compose#10322...(svg code)...
- 修復了建置已建置映像 ID 集合的問題。拉取請求 compose#10372...(svg code)...
- 使用已設定的名稱分隔符號來定義一次性容器名稱。已修復 compose#10354...(svg code)...
- 修復了重新建立容器時併發映射讀/寫問題。已修復 compose#10319...(svg code)...
- Compose 現在支援
stop
和rm
指令的預演模式。拉取請求 compose#10257 - Compose 現在支援
pull
指令的預演模式。拉取請求 compose#10341 - Compose 現在支援
push
指令的預演模式。拉取請求 compose#10355 - Compose 現在支援
exec
指令的預演模式。拉取請求 compose#10252compose#10339 2.16.02023-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#9718compose#9962 compose#9718 compose#10163 compose#10161 compose#10173 - 已更新文件,說明設定平行處理的方式。拉取請求 compose#10198
- 透過將 `-n` 設定為 `--tail` 的別名,使 `logs` 指令與 Docker CLI 保持一致。已修復 compose#10199
- 新增了對 `docker compose build --push` 的支援。拉取請求 compose#10148
compose#10208...(SVG圖示) - 為了與 Compose V1 使用者體驗保持一致,已將 `convert` 更名為 `config`。拉取請求 compose#10214...(SVG圖示)
- Compose 現在將代理伺服器設定作為建置參數傳遞。已修復 compose#8797...(SVG圖示)
- 透過忽略非 Compose 建立的容器,修復了 `compose up` 中的解析問題。已修復 compose#10162...(SVG圖示)
- 修復了日誌格式器初始化中的 Goroutine 洩漏問題。已修復 compose#10157...(SVG圖示)
- 修復了當所有正在執行的容器都已停止時,compose logs 不會退出的問題。拉取請求 compose#10181...(SVG圖示)
- 已更新文件,以反映 `docker compose ps` 與 `docker ps` 保持一致。拉取請求 compose#10195...(SVG圖示)
- 修復了找不到遠端 Buildx 驅動程式的問題。已修復 compose#9893...(SVG圖示)
- 改進了重新建立服務容器時的日誌記錄。拉取請求 compose#10236...(SVG圖示)
- 修正了一個問題,現在 Compose 只會等待與等待條件相關的容器。修正 compose#10200
。 - Compose 現在會防止對 nil map 中的項目進行賦值。修正 compose#10244
。 - 新增了一個專用的 GitHub Action 工作流程用於 Cucumber 測試。拉取請求 compose#10165
compose#10201 compose#10218 compose#10210 compose#10217 compose#10235 2.15.12023-01-09 更新
- 升級依賴項以修復 Golan CVE-2022-27664 和 CVE-2022-32149。
錯誤修正和增強功能
- 新增了對 UTS 命名空間的支援。修正 compose#8408
roadmap#418 compose#10151 compose#9739 2.15.02023-01-05 更新
- 依賴項升級:將 compose-go 提升至 v1.8.1。
- 依賴項升級:將 cli-docs-tool 提升至 0.5.1。
錯誤修正和增強功能
- 在
service.build
區段中新增了對privileged
屬性的支援。拉取請求 compose#10112compose#8805 - 新增了
--no-attach
參數,用於忽略某些服務的輸出。修復了 compose#8546 - 修復了當設定
driver:none
時logs
的問題。修復了 compose#9030 - Compose 現在依賴 dockerCLI.streams。拉取請求 compose#10082
compose#10077 compose#9951 compose#9505 compose#10121 compose#10125 compose#10136 compose#9091 2.14.22022-12-20 更新
- 相依性升級:將 containerd 升級至 1.6.14
錯誤修正和增強功能
- Compose 現在在建立容器時使用 DOCKER_DEFAULT_PLATFORM 來決定平台。修復了 compose#10041
compose#9732 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
參數以限制並行引擎呼叫。拉取請求 compose#10030 - 在
up
日誌中區分 stdout 和 stderr。修復了 compose#8098 - 將
compose ps
輸出與docker ps
對齊。修復了 compose#6867 - 在 push 命令中新增了
--include-deps
參數。拉取請求 compose#10044 - 在
compose up
中引入了--timestamp
選項。修復了 compose#5730 - Compose 現在在從環境變數創建 secret 時應用 uid/gid。拉取請求 compose#10084
- 修正了等待附加依賴項時發生的死結問題。修正了 compose#10021
- 修正了收集已拉取映像 ID 時的競爭條件。修正了 compose#9897
- Compose 不會停止可以建置的映像的
pull
命令。修正了 compose#8724compose#8752 compose#8530 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#10020compose#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.tools` v2 的使用。拉取請求 compose#9935
compose#9988 2.12.22022-10-21 更新
- 更新 Docker Engine API 以恢復與 Linux 包裝所需的 Golang 1.18 的相容性。拉取請求 compose#9940
Compose 儲存庫 2.12.2 版本頁面 2.12.12022-10-21 安全性
- 更新 Docker Engine API 以套用 CVE-2022-39253
compose#9934 Compose 儲存庫 2.12.1 版本頁面 2.12.02022-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
錯誤修正和增強功能
- 修正了在有效的環境變數值上出現「無效範本」錯誤的 bug。修正了 compose#9806...、compose#9746...、compose#9704... 和 compose#9294... 的問題。
- 修正了確保使用 `docker compose build` 建立的新映像檔的 bug。修正了 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 - 修復了在 run 命令中覆蓋進入點時確保清除服務命令的錯誤。修復 compose#9622
- 依賴關係:修復圖遍歷期間的競爭條件。修復 compose#9014
- CI 現在在 Windows 和 macOS 上運行,包括通過 Docker Desktop 進行的端到端測試
- 當
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 repository 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#9801... - 在拉取映像檔時新增了改進的輸出警告。修復了 compose#9820...
- 修復了錯誤,確保當服務具有相依性時能正確擷取退出代碼。修復了 compose#9778...
- 修復了使用
--rmi
的down
指令。修復了 compose#9655... - 修復了 docker-compose convert 在使用 --no-interpolate 選項時將 $ 轉換為 $$ 的問題。修復了 compose#9160...
- 修復了
build.go
直接存取自定義標籤導致程式崩潰的問題。參考 compose#9810... - 將新載入的環境變數應用於 "DockerCli" 和 "APIClient"。修復了 compose#9210...
- 僅嘗試在
compose start [services]
上啟動指定的服務。修正了 compose#9796compose#9807 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
0.3.5 升級到 0.3.6 錯誤修正和增強功能 - 將環境變數的優先順序還原為作業系統優先於
.env
檔案。修復了 compose#9737 的問題。compose#9431 compose#9696... - 修復了 start/restart/pause/unpause 命令,以便在從 Compose 檔案運行時,也應用 Compose 模型。修復了 compose#9705... 和 compose#9705... 的問題。(註:原文 9671 應為 9671 或其他)
- 移除了一些子命令的說明文字中的多餘空格。
- 修復了
compose create
,使其在命令列的值設定為預設值時,不會覆蓋服務拉取策略。修復了 compose#9717... 的問題。 - 過濾掉了 "commandConn.Close- warning" 訊息。修復了 compose#8544... 的問題。
- 修復了 up/start/run 不會等待已停用的依賴項的問題。修復了 compose#9591... 的問題。
- 已將 Compose 模型應用於
compose kill
,並新增了--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-go v1.3.0
中引入的重大變更。Compose v2.8.0 更新
- 已將
compose-go
更新至 v1.4.0compose#9700 錯誤修正和增強功能 - 覆寫了
compose version
的父指令 PreRun 程式碼。修正了 compose#9698 。compose#9692 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
新增到程式碼檢查器中,提高了程式碼品質。
錯誤修正和增強功能
- 修正了插值錯誤訊息輸出。修正了 compose-spec/compose-go#292
、compose#9638、compose#9608、compose#9578、compose#9468 和 compose#9683。compose#9521 - 文件 CI:修正為在建立 PR 時使用 push-to-fork。
- 使用環境變數設定 golang 版本,並將 GitHub Actions 從 v2 更新到 v3。
- 使用 google/addlicense
kunalkushwaha/ltag Compose 儲存庫 2.8.0 版本頁面 2.7.02022-07-20 新增
- 新增了在構建步驟中支持環境機密的功能。修復了 compose#9606
的問題。
更新
- 依賴項升級:將 Go升級到 1.18.4
。 - 依賴項升級:將 compose-go升級到 v1.2.9
。
錯誤修正和增強功能
- 網路:防止因名稱重複而導致的問題。修復了 moby/moby#18864
的問題。 - 修復了`compose up`和`compose down`命令中與關閉網路名稱相關的問題。修復了 compose#9630...(svg omitted)... 的問題。
- 在運行`compose up --wait`時,針對一次性容器使用了適當的依賴條件。修復了 compose#9606...(svg omitted)... 的問題。
- 修復了環境變數展開的問題。
- 在一致性檢查中驗證依賴服務是否存在。修復了 compose#8910...(svg omitted)... 的問題。
- 修復了環境值中雜湊使用的問題。修復了 compose#9509...(svg omitted)... 的問題。
- Docker Build:添加了修復程序,以尊重經典構建器的依賴順序。修復了 compose#8538...(svg omitted)... 的問題。
- 修復了由空字串參數引起的panic。修復了 compose-switch#35...(svg omitted)... 的問題。
- 修復了啟動/重新啟動以免影響一次性容器的問題。修復了 compose#9509...(svg omitted)... 的問題。
- 修復了當`volumes_from`目標是容器而不是服務時,保留容器引用的問題。修復了 compose#8874...(svg omitted)... 的問題。
- build.go:添加了如果`CustomLabels`映射為`nil`則初始化它的修復程序。
- 添加了新的目標,以便在運行e2e測試之前構建Compose二進制文件。
- CI:發布了工作流程,以便在文件庫中使用最新的變更打開PR。
- e2e:添加了針對`ps`的測試。
- e2e:拆分暫停測試並添加更多案例。
- e2e:添加更多啟動/停止測試案例。
如需完整的變更日誌或其他資訊,請查看 Compose 儲存庫 2.7.0 發行頁面...(svg omitted)...。
2.6.1
2022-06-23新增
- 新增了從環境變數設定 secrets 的支援。修正了 compose-spec/compose-spec#251
。
更新
- 升級:compose-go v1.2.8
。 - 升級:buildx v0.8.2
至 1.1.2 1.18.3 v1.2.8 錯誤修正和增強功能 - 新增了容器創建請求的連結。修正了 #9513
和 #9501#9459 #9427 #9562 docker/for-mac#6317 #9542 。 - 修正了
compose ps
輸出,使其列出所有已公開的端口。修正了 #9257...。 - 修正了
compose ps
代碼中的拼寫錯誤。 - 修正了
docker compose
,即使在請求已棄用的選項時,也能夠遵循--no-ansi
。 - 修正了網路名稱和網路 ID 可能存在的歧義。
- e2e:添加了針對`ps`的測試。
- 端到端測試:將 json 反序列化為容器摘要。
- 端到端測試:修正了子測試並阻止了不安全的並行測試。
- 端到端測試:將測試命令環境與系統環境隔離。
- 端到端測試:修正了
ps
誤判的錯誤。 - 端到端測試:確保所有 compose 命令都可獨立相容。
- 端到端測試:改進了測試失敗時的輸出。
如需完整的變更日誌或其他資訊,請查看 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 檔案導入到作業系統環境,以便透過此檔案設定變數(例如 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錯誤修正和增強功能
- 修正了指定
-p
旗標時,compose down
命令的 panic 問題。修正了 #9353...。 - 將新建立的專案作為輸入傳遞給啟動服務 (
docker compose up
)。修正了 #9356...。 - 將 docker-compose 檔案中 links 下宣告的服務作為隱式依賴項包含在內。修正了 #9301...。
- 變更了
docker compose pull
命令以遵循定義的策略:1) 跳過設定為pull_policy: never
的服務,以及 2) 忽略具有現有映像檔且pull_policy: missing
的服務。修正了 #3660...。 - 不再忽略從資源建置專案的錯誤,以防止
down
panic。修正了 #9383...。 - 強制專案名稱為小寫。修正了 #9378...。
- 新增了對建置時 secrets 的支援。修正了 #6358...。
- 修改了
compose-go
,允許在無法使用掛載 (mount) 時,(重新) 建立引擎bind
API 使用的磁碟區字串。修正了 #9380 的問題。 - 提供了 checksums.txt 檔案並新增了
--binary
參數,允許在不同作業系統中進行驗證。修正了 #9388... 的問題。 - 新增了變更,以便檢查並將本地拉取的映像檔 ID 持續保存到
com.docker.compose.image
中。修正了 #9357... 的問題。 - 修正了有關 IPAM 閘道器設定的問題。修正了 #9330... 的問題。
- 新增了對 docker compose 二進制檔案的 ppc64le 架構支援。
- 修正了
--no-TTY
文件中的搜尋/取代錯誤。
如需完整的變更紀錄或其他資訊,請查看 Compose repository 2.5.0 發行頁面...。
2.4.1
2022-04-04錯誤修正和增強功能
- 將
--rm flag
值原樣傳遞給 Docker CLI,以便使用此旗標運行容器。修正了 #9314... 的問題。 - 在使用
docker compose up
命令構建映像檔時,將 ssh 設定新增到構建選項中。修正了 #9338... 的問題。 - 新增了對容器的檢查,確認是否需要 TTY。使用
tty:true
指定運行的服務現在會顯示主控台輸出。修正了 #9288... 的問題。
如需完整的變更紀錄或其他資訊,請查看 Compose repository 2.4.1 發行頁面...。
2.4.0
2022-04-1更新
- 依賴項更新:將 buildx 提升至 v0.8.1,以修復處理構建上下文掃描錯誤時可能發生的 panic。
錯誤修正和增強功能
- 將 Compose CLI 的互動式旗標「-i」傳遞給 Docker CLI 以運行 exec 命令。修正了 #9315... 的問題。
- Compose 命令現在會考慮
COMPOSE_PROJECT_NAME
環境變數的值。修正了 #9316... 的問題。 - 修復了在沒有任何已啟動服務或待刪除資源的情況下執行
compose down
命令時返回錯誤的問題。該錯誤是由於命令嘗試刪除不存在的預設網路所致。修復了 #9333 。 - 在建置區塊中新增了對
cache_from
、cache_to
、no_cache
和pull
屬性的支援。這些屬性允許強制從原始碼完整重建,並檢查 registry 中使用的映像檔。這些變更為日後提供 compose build(或等效)命令的--no-cache
和--pull
選項奠定了基礎。 - 在 CLI 和 Compose 檔案的
build
命令中新增了對--ssh
旗標的支援。修復了 #7025...。 - 修復了
--ssh
旗標說明中的拼寫錯誤。與 #7025... 相關。 - 將 Kubernetes 相依性固定到與 buildx 中相同的版本。
- 將 Compose CLI 中的互動式旗標傳遞給 Docker CLI 以執行 exec 命令。
- 修復了並行運行啟動-停止端到端測試時的競爭條件。
- 移除關於過時警告的程式碼。
- 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 來處理所有 interactive/tty/* 終端邏輯的變更。
移除
- 移除沒有候選項的容器現在會產生警告而不是錯誤。修復了 #9255...。
- 從 run 和 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 repository 2.3.4 發布頁面
。其他版本
(2022-03-8 至 2022-04-14)
對於版本號晚於 1.29.2 且早於 2.3.4 的版本,請查看 Compose repository 發布頁面
。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 schema 修復了缺少的服務屬性
storage_opt
。修復了構建
extra_hosts
列表格式。移除了
exec
上的額外錯誤訊息。
其他
- 將
compose.yml
和compose.yaml
添加到默認文件名列表中。
1.28.5
(2021-02-26)
錯誤
修復了調用 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 shell 的自動補全功能。
其他
將 cryptography 升級到 3.3.2。
移除了日誌驅動程序過濾器。
有關此版本中修復的 PR 和問題列表,請參閱 Compose 1.28.3
1.28.2 (2021-01-26)
錯誤修正
恢復 Linux 靜態構建的 Python 3.7 版本。
為
docker-compose logs|up --no-log-prefix
添加 bash 自動補全功能。
其他
- CI 設置更新。
1.28.0
(2021-01-20)
功能
通過設備請求添加了對 NVIDIA GPU 的支持。
添加了對服務配置文件的支持。
將 SSH 連接 Docker CLI 的方法改為調用本地 SSH 客戶端。設置
COMPOSE_PARAMIKO_SSH=1
環境變量以啟用舊行為。添加了一個標誌以禁用日誌前綴。
添加了一個用於 ANSI 輸出控制的標誌。
Docker Compose 現在在構建映像時使用原生 Docker CLI 的
build
命令。設置COMPOSE_DOCKER_CLI_BUILD=0
環境變量以禁用此功能。
錯誤修正
默認情況下將
parallel_pull
設置為True
。恢復了非 Swarm 模式下 configs 的警告。
在定義
project_dir
時考慮了--file
。修復了
compose up
上的服務附加錯誤。
其他
添加了使用指標。
將 schema 與 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 套接字地址。
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 網絡傳播問題的臨時解決方法。將新的內部 schema 版本固定為
3.9
作為默認值。保留了 Compose 文件中配置的版本號。
1.27.0
(2020-09-07)
功能
合併了 2.x 和 3.x Compose 格式,並與
COMPOSE_SPEC
schema 對齊。為
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 部分時的擴展錯誤。
修復了
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-py
4.2.2 作為最低版本。
1.26.1
(2020-06-30)
功能
- 將
docker-py
從 4.2.1 升級到 4.2.2。
錯誤修正
使用 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。
錯誤修正
正確地對來自 `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 崩潰的問題。Docker Compose 現在會在 `version` 欄位中使用無效值時顯示錯誤訊息。
修復了在終端外部執行命令時導致 Docker Compose 錯誤呈現訊息的問題。
1.25.1
(2020-01-06)
錯誤修正
在使用 `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:<版本>-alpine` 和 `docker-compose:<版本>-debian`。
將 `docker-py` 升級到 4.1.0 版本。
增強了對 `requests` 的支援,最高支援 2.22.0 版本。
移除了 `build:cache_from` 上的空標籤。
`Dockerfile` 增強功能,可為 Alpine Linux 生成 `libmusl` 二進制檔案。
僅拉取無法建置的映像檔。
`scale` 屬性現在接受 `0` 作為值。
在 `docker-compose build` 命令中添加了 `--quiet` 選項和 `--no-rm` 選項。
在 `docker-compose config` 命令中添加了 `--no-interpolate` 選項。
將 MacOS 建置的 OpenSSL 從 `1.1.0` 升級到 `1.1.1c`。
添加了對 `docker-compose.yml` 檔案的 `credential_spec` 設定選項的支援。
解析摘要,無需拉取映像檔。
將 `pyyaml` 升級到 `4.2b1` 版本。
將 `down` 嘗試移除不存在的映像檔時的嚴重性降低到 `warning`。
強制使用改進的 API 欄位來處理專案事件(如果可能)。
為現代的 `pypi/setuptools` 更新了 `setup.py`,並移除了 `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` 自動完成中,將 `--parallel` 添加到 `docker build` 的選項中。
錯誤修正
修復了當嘗試從私有倉庫拉取映像檔時,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` 建立的容器將繼續使用隨機產生的名稱,以避免在平行執行期間發生衝突。
修正了在 Windows 上嘗試建置時,某些 `dockerfile` 路徑會意外失敗的問題。
修正了建置上下文 URL 在 Windows 上建置失敗的錯誤。
修正了導致 `run` 和 `exec` 命令在某些原本可接受的 `--host` 參數值情況下失敗的錯誤。
修正了服務定義中 `storage_opt` 和 `isolation` 鍵的覆蓋設定未正確套用的問題。
修正了某些無效的 Compose 檔案在驗證期間會引發未攔截異常的錯誤。
1.23.1
(2018-11-01)
錯誤修正
修正了使用 Compose 1.23.0 之前版本建立的容器時,會導致意外崩潰的錯誤。
修正了 `--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` 失败的问题。
修正了嘗試使用 Docker Desktop for Windows 掛載 `/var/run/docker.sock` 會導致失敗的錯誤。
Compose 現在使用 `--project-directory` 選項來決定在哪裡尋找 `.env` 檔案。
當嘗試使用 * **gcloud 憑證輔助程式** * 提供的憑證提取映像檔時,`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
- 在服務、網路和磁碟區配置中新增了對擴展欄位的支援
錯誤修正
修正了在設定 `DOCKER_DEFAULT_PLATFORM` 時,使用某些 Compose 檔案無法部署的錯誤
Compose 將不再嘗試使用無效的起始字元建立容器或磁碟區
修正了幾個阻止 Compose 命令與使用舊版 Compose 建立的容器正常工作的錯誤
修正了當來源檔案包含可附加網路時,啟用 `--compatibility-mode` 旗標的 `docker-compose config` 輸出的問題
修正了在 UNIX 上將 `gcloud` 憑證儲存與 Compose 二進制檔案一起使用時,阻止其正常工作的錯誤
修正了在 Windows 上嘗試透過非 HTTPS TCP 連線操作時導致連線錯誤的錯誤
修正了如果 Dockerfile 位於建置上下文的子目錄中,則在 Windows 上建置失敗的錯誤
修正了在 Windows 上無法正確解析 UTF-8 BOM 編碼的 Compose 檔案的問題
修正了使用 `docker-compose build` 時,在 `.dockerignore` 檔案中處理雙萬用字元 ( `**` ) 模式的问题
修正了導致忽略舊版 `.dockercfg` 檔案中的驗證值的錯誤
`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 檔案產生包含重複元素的無效繫結的錯誤,從而在部署期間觸發引擎級別的錯誤。
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 編碼。
修正了 Compose 會將 Swarm 中的外部覆蓋網路錯誤地識別為不存在,從而中斷有效操作的錯誤。
1.20.0
(2018-03-20)
新功能
Compose 檔案版本 3.6
引進了
docker-compose.yml
規格的 3.6 版本。此版本必須搭配 Docker Engine 18.02.0 或更高版本使用。在磁碟區映射中新增了對
tmpfs.size
屬性的支援。
Compose 檔案版本 3.2 及更高版本
--build-arg
選項現在可以在docker-compose build
中使用,無需指定服務。
Compose 檔案版本 2.3
在服務定義中新增了對
device_cgroup_rules
的支援。在長格式磁碟區映射中新增了對
tmpfs.size
屬性的支援。--build-arg
選項現在可以在docker-compose build
中使用,無需指定服務。
所有格式
在頂層
docker-compose
命令中新增了--log-level
選項。可接受的值為debug
、info
、warning
、error
、critical
。預設日誌級別為info
。docker-compose run
現在允許使用者取消設定容器的進入點。在
~/.docker/config.json
檔案中找到的代理設定現在會為 Compose 建立的容器填入環境和建置參數。在
docker-compose run
中新增了--use-aliases
旗標,表示在服務設定中宣告的網路別名應該用於正在執行的容器。在
docker-compose pull
中新增了--include-deps
旗標。docker-compose run
現在在收到SIGHUP
信號時會終止並移除正在執行的容器。docker-compose ps
現在會顯示容器的健康狀態(如果有的話)。在
exec
、run
和up
命令中新增了長格式--detach
選項。
錯誤修正
修正了
.dockerignore
的處理方式,特別是關於絕對路徑和最後一行優先規則的問題。修正了在使用 Docker For Mac 時,Compose 在連接到 Engine 時會進行昂貴的 DNS 查詢的錯誤。
修正了 1.19.0 版本中引入的錯誤,該錯誤導致 Compose 不遵守預設憑證路徑。
修正了 Compose 在建置上下文的一部分時會錯誤地檢查符號連結的目標是否可存取的錯誤。
修正了在 Windows 上,包含空白行的
.dockerignore
檔案會導致 Compose 發生錯誤的錯誤。修正了在互動式
run
和exec
命令中,--tls*
和--host
選項無法正確生效的錯誤。security_opt
設定中的seccomp:<filepath>
項目現在可以正確地將檔案內容傳送到引擎。up
和down
操作的 ANSI 輸出不應再影響錯誤的行。改進了對非 Unicode 語系的支援。
修正了當使用者家目錄名稱包含非 ASCII 字元時,在 Windows 上發生的當機問題。
修正了由建置上下文中
mtime
值為負數的檔案引起的建置期間發生的錯誤。修正了串流建置進度時的編碼錯誤。
1.19.0
(2018-02-07)
重大變更
- 在 UNIX 平台上,互動式
run
和exec
命令現在預設需要在用戶端安裝docker
CLI。要恢復之前的行為,使用者可以設定COMPOSE_INTERACTIVE_NO_CLI
環境變數。
新功能
Compose 檔案版本 3.x
config
命令的輸出現在應該可以更準確地合併多個 Compose 檔案中的deploy
選項。
Compose 檔案版本 2.3
- 在服務定義中新增了對
runtime
選項的支援。
Compose 檔案版本 2.1 及更高版本
- 新增了對
${VAR:?err}
和${VAR?err}
變數插值語法的支援,以指示必要的變數。
Compose 檔案版本 2.x
- 在服務網路映射中新增了
priority
鍵,允許使用者定義指定服務連接到每個網路的順序。
所有格式
在
up
命令中新增了--renew-anon-volumes
(縮寫為-V
),防止 Compose 從先前容器的匿名磁碟區恢復磁碟區資料。新增了同時平行操作數量的限制,這應該可以防止伺服器意外的資源耗盡。預設值為 64,可以使用
COMPOSE_PARALLEL_LIMIT
環境變數進行設定。在
up
命令中新增了--always-recreate-deps
旗標,以強制重新建立相依服務以及相依性擁有者。新增了
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
項目讀取不正確的錯誤。修正了缺少的私密金鑰檔案會在其位置產生空目錄的錯誤。
修正了 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
命令,而建議使用此新選項。
錯誤修正
修正了
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
有時會因未攔截的例外狀況而失敗的錯誤。修正了使用
--parallel
旗標的docker-compose pull
在失敗時會傳回0
結束代碼的錯誤。修正了
deploy.resources
中的索引鍵未經驗證的問題。修正了
docker-compose config
輸出中的logging
選項會設定為null
(無效值)的問題。修正了當映像檔來自使用明確埠號的私有儲存庫時的
docker-compose images
命令的輸出。修正了當連接埠定義使用
0
作為已發佈連接埠的值時的docker-compose config
輸出。
1.15.0
(2017-07-26)
新功能
Compose 檔案版本 2.2
- 在建置設定中新增了對
network
參數的支援。
Compose 檔案版本 2.1 及更高版本
服務定義中的
pid
選項現在支援service:<name>
值。在服務定義中新增了對
storage_opt
參數的支援。此選項不適用於 v3 格式。
所有格式
在
docker-compose pull
中新增了--quiet
旗標,以抑制進度輸出。CLI 輸出的一些改進。
錯誤修正
透過
docker-compose run
的--volume
旗標指定的磁碟區現在會補充在服務定義中宣告的磁碟區,而不是取代它們。修正了使用多個 Compose 檔案會取消設定 Compose 檔案中定義的縮放值的問題。
修正了 Compose 未遵守
config.json
檔案中的credHelpers
項目的問題。修正了在 Python 3 環境中使用具有連接埠宣告的多個 Compose 檔案會導致失敗的錯誤。
修正了使用者環境中存在的一些與 Proxy 相關的選項會阻止 Compose 執行的錯誤。
修正了如果原始檔案使用
Y
或N
值,則docker-compose config
的輸出將無效的問題。修正了阻止在 Windows 引擎上先前建立的堆疊上執行
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` 旗標的簡寫 `-u`
Compose 檔案與遠端網路之間的標籤差異現在會顯示警告,而不是阻止重新部署。
錯誤修正
修正了在執行 `docker-compose run` 命令時,服務的依賴項會被重新縮放到其預設規模的錯誤。
修正了使用 `--stop` 旗標的 `docker-compose rm` 在提供要移除的服務列表時無法正常運作的錯誤。
修正了在使用多個 Compose 檔案時,建置區段中的 `cache_from` 會被忽略的錯誤。
修正了在使用多個 Compose 檔案時,無法將同一個埠綁定到不同 IP 的錯誤。
修正了如果覆寫檔案具有 `.yaml` 副檔名,Compose 將無法讀取的錯誤。
修正了 Windows 引擎中網路會被錯誤地標記為需要重新建立的錯誤。
修正了宣告埠的服務在某些 Python 3 版本上會導致崩潰的錯誤。
修正了 `docker-compose config` 的輸出有時會包含無效埠定義的錯誤。
1.13.0
(2017-05-02)
重大變更
- `docker-compose up` 現在會將服務的縮放比例重置為其預設值。您可以使用新引入的 `--scale` 選項來指定自定義縮放比例值。
新功能
Compose 檔案版本 2.2
引入了 `docker-compose.yml` 規格的 2.2 版本。此版本需要與 Docker Engine 1.13.0 或更高版本一起使用。
在服務定義中新增了對 `init` 的支援。
在服務定義中新增了對 `scale` 的支援。可以使用 `docker-compose up` 中的 `--scale` 旗標覆寫設定的值。`scale` 命令在此檔案格式中已停用。
Compose 檔案版本 2.x
- 在網路定義的 `ipam` 區段中新增了對 `options` 的支援。
錯誤修正
修正了透過 `-f` 選項提供給 Compose 的路徑無法正確解析的錯誤。
修正了埠區段中的 `ext_ip::target_port` 表示法被錯誤地標記為無效的錯誤。
修正了使用 `-d` 旗標時,`exec` 命令有時無法將控制權返回終端機的問題。
修正了 v3.2 檔案的 `config` 命令輸出中缺少密鑰的問題。
修正了如果沒有網路連線,`docker-compose` 會卡住的問題。
修正了透過 `-f` 旗標傳遞的包含 Unicode 字元的路徑導致 Compose 崩潰的問題。
修正了如果 Compose 檔案包含外部密鑰,`docker-compose config` 的輸出將無效的問題。
修正了在 Python 3 環境中安裝 Compose 時,將 `--exit-code-from` 與 `up` 一起使用會失敗的錯誤。
修正了使用 `tmpfs` 和 `volumes` 的組合重新建立容器會導致無效配置狀態的錯誤。
1.12.0
(2017-04-04)
新功能
Compose 檔案版本 3.2
引入了 `docker-compose.yml` 規格的 3.2 版本。
在服務的 `build` 區段中新增了對 `cache_from` 的支援。
在服務定義中新增了對新的擴展埠語法的支援。
在服務定義中新增了對新的擴展磁碟區語法的支援。
Compose 檔案版本 2.1
- 在服務定義中新增了對 `pids_limit` 的支援。
Compose 檔案版本 2.0 及更高版本
在 `docker-compose config` 中新增了 `--volumes` 選項,用於列出為該專案宣告的具名磁碟區。
在服務定義中新增了對 `mem_reservation` 的支援(僅限 2.x)。
在服務定義中新增了對 `dns_opt` 的支援(僅限 2.x)。
所有格式
新增了一個新的 `docker-compose images` 命令,用於列出當前專案的容器使用的映像。
在 `docker-compose rm` 中新增了一個 `--stop`(簡寫 `-s`)選項,用於在移除正在執行的容器之前停止它們。
在 `docker-compose config` 中新增了一個 `--resolve-image-digests` 選項,將每個服務的映像版本固定到永久摘要。
在 `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` 環境值的路徑分隔符號。
在埠映射中新增了對埠範圍到單個埠的支援,例如 `8000-8010:80`。
錯誤修正
`docker-compose run --rm` 現在在執行後移除匿名磁碟區,與 `docker run --rm` 的行為相符。
修正了包含埠列表的覆寫檔案會導致引發 TypeError 的錯誤。
修正了 `deploy` 鍵在 `docker-compose config` 的輸出中遺失的錯誤。
修正了向上或向下縮放服務有時會重複使用過時容器的錯誤。
修正了如果專案宣告匿名磁碟區,`docker-compose config` 的輸出將無效的錯誤。
變數插值現在在 Compose 檔案的 `secrets` 區段中正確執行。
`secrets` 區段現在正確顯示在 `docker-compose config` 的輸出中。
修正了針對先前建立的網路無法偵測到某些網路屬性更改的錯誤。
修正了 `docker-compose` 在嘗試寫入關閉的管道時會崩潰的錯誤。
修正了 Compose 在與命令列 TLS 旗標組合使用時無法讀取 COMPOSE_TLS_VERSION 值的問題。
1.11.2
(2017-02-17)
錯誤修正
修正了阻止密鑰配置正確載入的錯誤。
修正了如果配置檔案包含密鑰定義,`docker-compose config` 命令將失敗的錯誤。
修正了某些 Linux 發行版上的 Compose 會讀取和載入過時版本的 requests 程式庫的問題。
修正了建置資料夾內的 socket 類型檔案會導致 `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 或更高版本。它引入了對密鑰的支援。請參閱文件以瞭解更多資訊。
Compose 檔案版本 2.0 及更高版本
- 引入了 `docker-compose top` 命令,用於顯示 Compose 管理的不同服務正在執行的處理序。
錯誤修正
修正了擴展定義 healthcheck 字典的服務會導致 `docker-compose` 錯誤的錯誤。
修正了在使用多個 Compose 檔案時,服務定義中的 `pid` 項目被忽略的問題。
1.10.1
(2017-02-01)
錯誤修正
修正了較舊版本的 docker-py 套件的存在會導致執行 Compose 時發生意外崩潰的問題。
修正了在專案使用多個 Compose 檔案時,healthcheck 依賴項會遺失的問題。
修正了幾個導致
config
指令輸出無效的問題修正了在 v3 Compose 檔案中新增磁碟區標籤會導致錯誤的問題
修正了 Windows 上建置上下文路徑包含 Unicode 字元時編碼不正確的問題
修正了 Compose 在容器停止或重新啟動時串流日誌時偶爾會崩潰的錯誤
1.10.0
(2017-01-18)
新功能
Compose 檔案版本 3.0
- 引進了
docker-compose.yml
規格的 3.0 版本。此版本需要搭配 Docker Engine 1.13 或更高版本使用,並且專為與docker stack
指令搭配使用而設計。
Compose 檔案版本 2.1 及更高版本
現在可以使用
healthcheck
參數在服務定義中進行健康檢查設定現在可以使用
depends_on
宣告容器的相依性,使其等待正向的健康檢查結果。請參閱更新後的語法文件。 **注意**此功能將不會移植到版本 3 的 Compose 檔案。
在服務定義中新增了對
sysctls
參數的支援在服務定義中新增了對
userns_mode
參數的支援Compose 現在會將識別標籤新增到它建立的網路和磁碟區
Compose 檔案版本 2.0 及更高版本
- 在服務定義中新增了對
stop_grace_period
選項的支援。
錯誤修正
彩色輸出現在可以在 Windows 上正常運作。
修正了在 Windows 上以互動模式執行
docker-compose run
時無法設定連結別名的錯誤。由 Compose 建立的網路現在始終可附加(Compose 檔案 v2.1 及更高版本)。
修正了
COMPOSE_CONVERT_WINDOWS_PATHS
的假值(0
、false
、空值)被解釋為真的錯誤。修正了在 Windows 上某些 .dockerignore 模式中的正斜線無法正確解析的錯誤
1.9.0
(2016-11-16)
重大變更
- 在 Windows 上將 Compose 與 Docker Toolbox/Machine 搭配使用時,磁碟區路徑預設不再從
C:\Users
轉換為/c/Users
樣式。要重新啟用此轉換以使您的磁碟區繼續運作,請設定環境變數COMPOSE_CONVERT_WINDOWS_PATHS=1
。Docker for Windows 的使用者不受影響,不需要設定此變數。
新功能
Windows 平台現在支援
docker-compose run
和docker-compose exec
的互動模式。此功能需要系統上存在docker
二進位檔。引進了
docker-compose.yml
規格的 2.1 版本。此版本需要搭配 Docker Engine 1.12 或更高版本使用。- 新增了在
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
指令,該指令會建置一個 bundle 檔案以供 Docker 1.12 中新的 *Docker Stack* 指令使用。新增了
docker-compose push
指令,該指令會將服務映像檔推送到 registry。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 檔案的錯誤。
修復了未設定的建置參數 (buildargs) 會被指定為包含 `'None'` 的字串,而不是預期空值的問題。
修復了在 Windows 上,yes/no 提示在收到輸入之前不會顯示的錯誤。
修復了在 Windows 上嘗試使用 `docker-compose exec` 卻沒有使用 `-d` 選項時,會以堆疊追蹤 (stacktrace) 退出的錯誤。目前仍然會失敗,但應該會以更友善的方式退出。
修復了在 `docker-compose up` 期間發生的錯誤會在程序結束時顯示不相關的堆疊追蹤的錯誤。
當發生錯誤時,`docker-compose create` 和 `docker-compose start` 會顯示更具描述性的錯誤訊息。
1.7.1
(2016-05-04)
錯誤修正
修復了針對 v1 檔案,`docker-compose config` 的輸出會是無效設定檔的錯誤。
修復了 `docker-compose config` 不會檢查連結有效性的錯誤。
修復了 `docker-compose help` 不會如預期輸出可用指令和通用選項列表的問題。
修復了使用 `docker-compose logs` 時,依服務篩選的功能不會套用於新建立服務的問題。
修復了在使用 Python 3 的 Compose 中,未變更的服務有時會在 up 階段重新建立的錯誤。
修復了在 up 階段遇到的 API 錯誤不會被 Compose 識別為失敗狀態的問題。
修復了 Compose 會在非 Windows 平台上因未定義的例外名稱而引發 NameError 的錯誤。
修復了錯誤版本的 `docker-py` 有時會與 Compose 一起安裝的錯誤。
修復了 `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` 命令,用於在正在執行的容器中執行程序。
錯誤修正
`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` 未合併的錯誤。
修復了當使用空值或不正確類型而不是映射時,設定驗證的一些錯誤。
修復了沒有 `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
命令現在會以錯誤狀態碼退出。在
up
中新增了一個新的--abort-on-container-exit
旗標,這會導致up
在第一個容器退出後停止所有容器並退出。移除了對
FIG_FILE
、FIG_PROJECT_NAME
的支援,並且不再讀取fig.yml
作為預設的 Compose 檔案位置。移除了
migrate-to-labels
命令。移除了
--allow-insecure-ssl
旗標。
錯誤修正
修復了阻止在
expose
欄位中使用端口範圍的驗證錯誤。修復了如果
entrypoint
欄位中的陣列包含重複項目,則阻止使用陣列的驗證錯誤。修復了導致
ulimits
在與extends
一起使用時被忽略的錯誤。修復了阻止在
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)
在
build
中新增了--force-rm
選項。在 Compose 檔案中為服務新增了
ulimit
選項。修復了如果服務從使用
image
改為使用build
,則up
會出現「服務需要建置」錯誤的錯誤。修復了在某些終端上導致並行操作輸出不正確的錯誤。
修復了當
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
https://github.com/docker/compose/blob/8cc8e61/docs/reference/docker-compose.md 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
`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 映像檔安裝和執行。這是一項實驗性功能。
錯誤修正
Compose 現在支援 Docker daemon 支援的所有 `log_driver` 選項值。
`docker-compose build` 現在可以成功地在 Swarm 叢集上運行。
1.4.2
(2015-09-22)
- 修正了 1.4.1 版本中的一個回歸問題,該問題會導致沒有 `-d` 選項的 `docker-compose up` 立即結束。
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_driver
之外,還支援log_opt
,允許您將額外的設定傳遞給服務的日誌驅動程式。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(不安全)的私有 registry 中提取映像。先前用於解決此問題的
--allow-insecure-ssl
標誌已被棄用,現在無效。修復了一個錯誤:如果建置依賴於私有 Hub 映像或來自私有 registry 的映像,
docker-compose build
將會失敗。修復了一個錯誤:如果 Docker daemon 還沒有完成移除容器,Compose 將會崩潰。
修復了兩個錯誤:如果在
docker-compose.yml
中指定的磁碟區路徑帶有尾斜線,Compose 有時會因「重複綁定掛載」錯誤而失敗,或者無法將磁碟區附加到容器。
感謝 @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 驗證設定檔,因此對私有 registry 的驗證將會失敗。 - 當容器附加了偽終端 (pseudo-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 會將其設定為「橋接」,而不是允許 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 命名空間 (namespace)。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
中變更磁碟區設定後,服務的磁碟區有時不會更新。 - 對第三方 registry 進行驗證有時會失敗。
- 如果服務已設定
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 可以與 Docker 的新叢集工具 Swarm (https://github.com/docker/swarm)
https://github.com/docker/compose/blob/1.1.0/docs/completion.md https://github.com/docker/compose/issues?q=milestone%3A1.1.0+ 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。
,我們的 IRC 頻道現在是 Freenode 上的 #docker-fig。https://github.com/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
和埠號5432
,而不必解析環境變數DB_PORT_5432_TCP_ADDR
和DB_PORT_5432_TCP_PORT
。磁碟區定義現在支援
ro
模式、展開~
和展開環境變數。建置時支援
.dockerignore
。可以使用
FIG_PROJECT_NAME
環境變數設定專案名稱。fig run
中已新增--env
和--entrypoint
選項。適用於 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
一樣。 - 修正了導致 fig 出錯的
dns:
fig.yml 選項。 - 修正了 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 現在會在您執行
fig run
或fig up
時啟動連結。例如,如果您有一個依賴於
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)
- 將服務連結到自身,以便 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 Client 保持一致,使用
DOCKER_HOST
環境變數來尋找 Docker Daemon(先前為DOCKER_URL
) (#19) - 在
fig ps
中截斷過長的指令 (#18) - 完善 CLI 指令的說明 (#15, #16)
- 當缺少
fig.yml
時,顯示更友善的錯誤訊息 (#4) - 修正
fig build
記錄的錯誤 (#3) - 修正如果步驟執行時間過長且沒有產生輸出時,建置會逾時的錯誤 (#6)
- 修正透過 Unix Socket 串流容器輸出時會引發錯誤的 bug (#7)
非常感謝 @tomstuart、@EnTeQuAk、@schickling、@aronasorman 和 @GeoffreyPlitt。
0.0.2
(2014-01-02)
- 改進說明文件
- 除了
localhost
之外,嘗試連線到tcp://localdocker:4243
和 UNIX Socket 上的 Docker。 - 改進
fig up
的行為 - 在
fig rm
中加入確認提示 - 新增
fig build
指令
0.0.1
(2013-12-20)
初始版本。
- 新增了一個
- 新增了容器創建請求的連結。修正了 #9513
- 新增了在構建步驟中支持環境機密的功能。修復了 compose#9606
- 引入了
- 覆寫了
- 將環境變數的優先順序還原為作業系統優先於
- 更新 Docker Engine API 以套用 CVE-2022-39253
- 更新 Docker Engine API 以恢復與 Linux 包裝所需的 Golang 1.18 的相容性。拉取請求 compose#9940