日本語

開発者ツール · Docker run から Docker compose コンバーター

docker-compose と docker compose: Python ツールと Go プラグイン

· 背景

ドッカー 作成 開発者ワークフロー

docker-compose と docker compose を示す抽象図: Python ツールと go プラグイン
オリジナル ToolAcre ベクトル イラスト

ハイフンは 2 つの異なるプログラムを表します。この記事では、それぞれの由来、動作の違い、マシンがどちらを実行しているかを判断する方法について説明します。

スクリプトはローカルで動作しますが、CI では失敗します — 1 台のマシンには docker-compose があり、もう 1 台には docker-compose があり、それらは同じではありません

スクリプトはローカルで動作しますが、CI では失敗します。1 台のマシンには docker-compose があり、もう 1 台には docker compose があり、それらは同じではありません。証拠: 実行可能ファイル名が異なると CI で失敗する可能性がありますが、ブラウザは PATH を検査できません。使い捨てリテラルを使用して実行可能ファイルの選択を再現します。各ソース オカレンスをプレーン YAML およびローカル コマンドと組み合わせます。宛先レビュー用にバイナリ固有の動作を予約します。

この開発者ワークフローの開発者ワークフロー インシデント この開発者ワークフロー セクション セクション この開発者ワークフロー セクションの開発者 この開発者ワークフロー セクションのワークフロー セクション この開発者 この開発者ワークフロー セクションの開発者ワークフロー セクション この開発者ワークフロー セクションのワークフロー セクション また、別の開発者ワークフロー インシデントの境界が、実装とバージョンによって名前とフラグの違いが異なることも明らかにします。証拠: リポジトリは、より広範な実行時または歴史的な証拠を提供しません。この実行可能な選択制約は停止点です。製造時の動作を含まないプレーン YAML とローカル コマンドを検査し、バイナリ固有の動作についてのホスト チェックを文書化します。

リポジトリは、以前の Python プログラムの配布履歴をソースとしていません。

Python の時代 — pip またはバイナリとしてインストールされるスタンドアロン プログラムとしての docker-compose。証拠: 以前の Python 配布履歴はここでは出典されていません。このリポジトリは、以前の Python プログラムの配布履歴をソースとしていません。実行可能選択トークンをプレーン YAML とローカル コマンドにトレースします。順序付けされた値を最終値フィールドから分離します。バイナリ固有の動作はコレクションの外にあります。

関連する開発者ワークフロー メカニズムの境界は、この開発者ワークフロー セクションについては、この開発者ワークフロー セクションのコマンドと警告をこの候補ファイルの横に保持することです。この実行可能選択ファクトを使用して、プレーン YAML およびローカル コマンドで 1 つのメンバーまたはスカラーを予測します。バイナリ固有の動作について決定する前に、警告を確認してください。

コンバーターは、どの Compose 実行可能ファイルがインストールされているかを検出せずに、プレーンな YAML を出力します。

Compose v2 — Docker CLI プラグインとして出荷され、docker compose として呼び出される Go リライト。証拠: Compose 実行可能ファイルは呼び出されず、出力はプレーン YAML です。コンバーターは、どの Compose 実行可能ファイルがインストールされているかを検出せずに、プレーンな YAML を発行します。実行可能な選択のシリアル化をそのモデルから判断します。プレーン YAML およびローカル コマンドでクォートすると型は保護されますが、バイナリ固有の動作については動作上の証拠が得られません。

2 番目の開発者ワークフロー シリアル化の観察では、この開発者ワークフロー セクションに対して、この開発者ワークフロー セクションの元のコマンドが保持され、この開発者ワークフロー セクションの横にある警告が表示されます。開発者ワークフロー シリアル化の結果が、この開発者ワークフロー セクションの構成に対して表された候補ファイルを、この開発者ワークフロー セクションの欠落コンテキストから分離する候補ファイルです。イメージ メタデータは、開発者ワークフロー シリアル化変換の範囲外です。この実行可能な選択出力は、設定を使用できないコンテキストから分離します。プレーン YAML とローカル コマンドをレビュー可能にし、バイナリ固有の動作を個別にチェックできるようにします。

Compose 実装間の動作の違いには、独自のバージョン付きドキュメントが必要です

動作の違い — コンテナーの命名区切り記号、バージョン キー、およびコマンドライン フラグが移動されました。証拠: 名前とフラグの違いは実装とバージョンによって異なります。 Compose 実装間の動作の違いには、独自のバージョン管理されたドキュメントが必要です。推測するのではなく、実行可能ファイルの選択の例外で停止してください。プレーン YAML およびローカル コマンドに近い追加には、バイナリ固有の動作に関連付けられたデプロイメント固有の理由が必要です。

もう 1 つの開発者ワークフロー例外制約は、この開発者ワークフロー セクションについては、この開発者ワークフロー セクションのコマンドと警告をこの候補ファイルの横に保持することです。元の実行可能選択コマンドは警告の横に残しておきます。この比較により、プレーン YAML とローカル コマンドに何が含まれているか、またどのバイナリ固有の動作決定が手動のままであるかが示されます。

実行可能ファイルの検出はオペレーターによるチェックです。ブラウザコンバータはどちらのコマンドも実行しません

それらを区別する - docker compose バージョン、どの docker-compose、および compose-switch shim。証拠: オペレータはこのページの外でバージョンとパスのチェックを実行できます。実行可能ファイルの検出はオペレーターによるチェックです。ブラウザコンバータはどちらのコマンドも実行しません。合成名から実行可能ファイルの選択例を構築します。実稼働バイナリ固有の動作の詳細を公開することなく、すべてのプレーン YAML およびローカル コマンド項目を追跡可能にします。

同じ開発者ワークフローのサンプル サンプルは、この開発者ワークフロー セクションについて、この開発者ワークフロー セクションのコマンドと警告を、この候補ファイルの横にオリジナルで保持することを示しています。ペアになった実行可能ファイルの選択ファクトは、プレーンな YAML およびローカル コマンドで表示される必要があります。その行を記録し、バイナリ固有の動作についての推測を避けてください。

これでカバーされないもの — Podman の Compose 実装と Compose ファイルを読み取るその他のツール

これでカバーされないもの — Podman の Compose 実装および Compose ファイルを読み取るその他のツール。証拠: Podman と他の読者は、受け入れられた YAML を異なる方法で解釈する可能性があります。実行可能ファイルの選択結果を、1 つの観察可能なプレーン YAML とローカル コマンドの違いに変換します。 Docker は、後のバイナリ固有の動作の判定を所有します。

開発者ワークフローの結果の実装では、別の開発者ワークフローの影響境界として、以前の Python 配布履歴がここではソースされていないことも示されています。証拠: 以前の Python 配布履歴はここから出典されていません。実行可能ファイルの選択の責任を分割します。変換はプレーン YAML とローカル コマンドを書き込み、リポジトリはシークレットを削除し、オペレーターはバイナリ固有の動作を検証します。

要点: プラグインを使用し、ファイル仕様に準拠した状態を維持します。コンバータは通常の Compose でサービス定義を生成します YAML

要点: プラグインを使用し、ファイル仕様に準拠した状態を維持すると、コンバーターは通常の Compose YAML でサービス定義を生成します。証拠: 検証を信頼する前に、実際の実装を特定します。実行可能ファイルの選択範囲を、プレーンな YAML と、ここに示すローカル コマンド ブランチに制限します。隣接するフォームとデフォルトは、バイナリ固有の動作の質問に答えることができません。

もう 1 つの開発者ワークフロー スコープ制限は、「別個の開発者ワークフロー制限境界」に続き、Compose 実行可能ファイルが呼び出されず、出力がプレーン YAML になるというものです。証拠: Compose 実行可能ファイルは呼び出されず、出力はプレーン YAML です。この実行可能ファイルの選択境界を除外として扱います。バイナリ固有の動作についての推測よりも、正確なプレーン YAML とローカル コマンドを優先します。