Docker Compose 是最好的發明之一,它使本地開發變得簡單、無摩擦。如果你像我一樣是長期的 Docker Compose 狂熱者,你就會知道我們已經取得了長足的進步。目前,我們使用的是 Compose 的第 2 版,它是用 Golang 寫的。 Compose 的第 1 版是用 Python 編寫的,已被棄用。最後更新時間為2021 年 5 月 10 日。從那時起,這些軟體包就沒有收到任何安全性更新,出於安全原因,不建議使用它。您可以在此處閱讀有關 Compose 歷史的更多資訊。

v1 與 v2 比較

圖片來源:Docker 文件

這不僅僅是程式語言從 Python 到 Golang 的變化。在此過渡期間,很多事情發生了變化,從執行它的命令到我們建立撰寫文件的方式。

例如,要觸發 Compose v1 的二進位文件,我們使用docker-compose updocker-compose down等,因為之前我們已經單獨安裝了二進位檔案。現在,它是docker compose up在「docker」和「compose」之間沒有破折號-因為 Compose 現在預先安裝了 Docker 作為子命令(如果您使用的是 Docker for Desktop)。這是任何人都能注意到的視覺上最不同的變化。

但是,還有一個重大變更:不再需要像我們以前那樣對 compose 檔案進行版本控制。有趣的是,很多人沒有註意到這一點(包括我),因為具有版本的 compose 檔案仍然相容。另外,我認為當人們從 v1 遷移到 v2 時,訊息傳遞的力度不足以刪除該版本,而本部落格的全部目的就是讓人們意識到這一點。

範例撰寫文件

現在,Docker 更積極地透過在終端機中向您發出警告來從撰寫文件中獲取此版本形式。

終端戰截圖

此時,這只是一個警告,而不是一個錯誤,因為大多數人仍在使用版本,透過拋出錯誤立即更改它可能會導致許多應用程式崩潰。

如果您不相信我,我在 GitHub 上進行了搜尋,發現大約有 100 萬個專案(通常每個專案只有一個 compose 檔案)仍在其 compose 檔案中使用版本。

github搜尋結果截圖

順便說一句,這裡還有一個提示,如果您仍然使用命名 compose 檔案的舊約定 - docker-compose.yaml ,請開始使用compose.yaml

這就是本部落格的內容。我希望你喜歡這種寫作風格,它更像是短篇小說和自由風格。我很高興您仍在閱讀並讀到最後——非常感謝您的支持。在你們離開之前,我想告訴大家,我最近被認可為 Docker Captain。您可以在此處查看公告。


原文出處:https://dev.to/pradumnasaraf/stop-versioning-your-docker-compose-file-1f41

按讚的人:

共有 0 則留言