開發者工具 · Docker run 到 Docker compose 轉換器
為什麼 shell 歷史記錄中的 docker run 指令不是部署
· 為什麼它很重要
碼頭工人 撰寫 開發人員工作流程
docker run 是嘗試事物的好方法,也是執行它們的糟糕方法。這篇文章解釋了 Compose 檔案添加了什麼(審查、版本控制、可重複性)以及何時額外的檔案值得。
該容器已經執行了一年多了——關於它如何啟動的唯一記錄是某人筆記型電腦上 .bash_history 中的一行
該容器已經執行了一年多 - 關於它如何啟動的唯一記錄是某人筆記型電腦上 .bash_history 中的一行。證據:歷史指令可以轉換,但執行時狀態不能轉換。使用一次性文字重現部署來源。將每個來源事件與服務輸出和警告配對;保留依賴關係和執行時狀態以供目的地審查。
此開發人員工作流程的開發人員工作流程事件 此開發人員工作流程部分的開發人員工作流程部分 此開發人員工作流程部分的開發人員此開發人員工作流程部分的開發人員工作流程部分 此開發人員工作流程部分的開發人員工作流程部分 此開發人員工作流程部分的開發人員工作流程部分 還揭示了單獨的開發人員工作流程事件邊界是一個命令產生一項服務並不能揭示依賴關係。證據:儲存庫沒有提供更廣泛的執行時間或歷史證據。此部署來源限制是一個停止點。在沒有製造行為的情況下檢查服務輸出和警告,然後記錄主機檢查的依賴性和執行時狀態。
docker run 擷取的內容 — 配置存在於正在執行的容器的元資料中,可透過 dockerspect 檢索,但不可編輯
docker run 擷取的內容 — 配置存在於正在執行的容器的元資料中,可透過 dockerspect 檢索,但不可編輯。證據:沒有檢查 Docker 套接字或執行容器元資料。將部署來源令牌追蹤到服務輸出和警告。將有序值與最後值欄位分開;依賴項和執行時間狀態位於集合之外。
相關的開發人員工作流程機制邊界是單獨的開發人員工作流程語法邊界是已知值保留且不支援的效果仍然是警告。證據:已知的價值觀仍然存在,而不受支持的影響仍然是警告。使用此部署來源事實來預測服務輸出和警告中的一個成員或標量。在決定有關依賴項和執行時狀態的任何事情之前檢查警告。
Compose 檔案新增的內容 — 您可以比較、檢視、提交和回滾的文字檔案,以及用於重新建立堆疊的單一命令
Compose 檔案新增的內容 — 您可以比較、檢視、提交和回滾的文字檔案,以及用於重新建立堆疊的單一命令。證據:YAML 支持審查,同時僅保留候選定義。從其模型判斷部署來源序列化。在服務輸出和警告中引用可以保護類型,但不會提供依賴項和執行時狀態的操作證明。
第二個開發人員工作流程序列化觀察是一個單獨的開發人員工作流程輸出邊界,即 --rm 在概念上被重定向為組成 run --rm 以進行一次性工作。證據:--rm 在概念上被重定向為組成 run --rm 以進行一次性工作。此部署來源輸出將設定與不可用的上下文分開。保持服務輸出和警告可審查,並獨立檢查依賴關係和執行時狀態。
多個容器 - 需要多個 docker run 行的網路、依賴項和共用磁碟區成為一個檔案
多個容器 - 需要多個 docker run 行的網路、依賴項和共用磁碟區成為一個檔案。證據:一條命令產生一項服務,無法揭示依賴關係。在部署來源異常處停止而不是猜測。服務輸出和警告附近的任何新增都需要與依賴項和執行時狀態相關聯的特定部署的原因。
另一個開發人員工作流程異常約束是單獨的開發人員工作流程異常邊界是跨主機編排和建置管道位於此轉換之外。證據:跨主機編排和建置管道位於此轉換之外。將原始部署出處指令保留在警告旁。此比較顯示了服務輸出和警告包含的內容以及哪些依賴項和執行時間狀態決策仍然是手動的。
工作範例:將別名從歷史記錄轉換為 compose.yaml,提交它,然後從檔案重新建立容器
工作範例:將別名從歷史記錄轉換為 compose.yaml,提交它,然後從檔案重新建立容器。從合成名稱建置部署來源範例。使每個服務輸出和警告項都可追踪,而不會暴露生產依賴項和執行時狀態詳細資訊。
相同的開發人員工作流程範例示範了單獨的開發人員工作流程範例邊界是將組態移至文字中提高了可見性,而不是自動再現性。證據:將配置移至文字中可以提高可見性,而不是自動再現性。配對的部署來源事實應該在服務輸出和警告中可見。記錄該行並避免有關依賴項和執行時狀態的假設。
當 docker run 仍然正確時 — 一次性調試、一次性 shell 和 CI 步驟
當 docker run 仍然正確時 — 一次性調試、一次性 shell 和 CI 步驟。將部署來源結果轉換為一種可觀察的服務輸出和警告差異。 Docker 擁有後來的依賴項和執行時狀態判決。
開發人員工作流程結果實作也顯示了一個單獨的開發人員工作流程效果邊界是歷史指令可以轉換,但已使用執行時間狀態不能轉換。分割部署來源職責:轉換寫入服務輸出和警告,儲存庫刪除機密,操作員驗證依賴項和執行時間狀態。
這不包括什麼 - 超越一台主機的編排和映像建置管道
這不包括一台主機以外的編排和映像建置管道。將部署來源範圍限制為此處顯示的服務輸出和警告分支。相鄰的表單和預設值無法回答依賴關係和執行時間狀態問題。
另一個開發人員工作流程範圍限制來自一個單獨的開發人員工作流程限制邊界,即不檢查 Docker 套接字或執行容器元資料。將此部署來源邊界視為排除項。喜歡準確的服務輸出和警告,而不是對依賴項和執行時狀態的猜測。
重點:配置應該是一個檔案 - 並轉換器將您已有的命令轉換為該檔案
重點:設定應該是一個檔案 - 並轉換器將您已有的命令轉換為該檔案。審核部署來源,如來源選項、模型欄位、服務輸出以及警告行和警告。在檢查依賴項和執行時狀態之前刪除機密。
最後,開發人員工作流程要點來源確認了一個單獨的開發人員工作流程決策邊界是 YAML 支援審核,同時僅保留候選定義。嚴格關閉部署來源:服務輸出和警告是候選者;不保證依賴項、執行時間狀態和 shell 等效性。