Compose ファイルを貼り付けると、サービス一覧とローカル構造リンターの検出結果が表示されます。YAML はブラウザー内で解析され、アップロードも Docker デーモンへの接続も Compose の実行も行いません。
ブラウザ内でローカルに実行compose.yaml または docker-compose.yml を貼り付けてください。 解析と検査はブラウザー内で実行されます。
ブラウザー内で動く構造リンターです。イメージの取得、Docker デーモンの検査、環境変数の解決、Compose の実行は行いません。
| サービス | イメージ / ビルド | ポート | 依存先 |
|---|---|---|---|
| まだ Compose ファイルを検証していません。 | |||
compose.yaml または docker-compose.yml を貼り付けて「Compose ファイルを検証」を押すと、ブラウザー内で解析し、2 つの結果を表示します。重要度ごとの検出結果(services.db.ports[0] のような該当キーのパス付き)と、各サービスのイメージまたは build の指定・公開ポート・depends_on の一覧です。
組み込みのサンプル(api と db、それぞれ名前付きボリューム付き)は「確認できます」と表示され、docker compose up を妨げる問題はありません。一方、2 つのサービスで同じホストポートを使う、存在しないサービスを depends_on に書く、a → b → a のような循環参照はエラーとして報告されます。
構造: services は 1 つ以上のサービスを持つマッピング、各サービスはオブジェクトである必要があり、名前に使えるのは英数字・ピリオド・アンダースコア・ハイフンだけです(それ以外は Compose が拒否します)。image は空でない文字列、build はパスかオブジェクトでなければならず、どちらもないサービスは実行できないため警告します。
ポート: コンテナ側は 1〜65535 で、公開するホスト側ポートは単一の数値または 8000-8005 のような範囲を指定できます。範囲外や数値でないホストポート、tcp・udp・sctp 以外のプロトコル、同一サービス内および異なるサービス間の重複・範囲の重なりを検出します。network_mode: host と公開ポートの併用は、実行時にポート指定が無視されるため警告になります。
depends_on はリストまたはマッピングで指定でき、参照先が存在し、グラフに循環がない必要があります。a → b → a や自分自身への依存は、循環の経路全体とともにエラーになります。container_name と privileged: true は、スケールを妨げたりホスト権限を広げたりするため警告として表示します。
サービスが使う名前付きボリュームは、トップレベルの volumes で宣言されている必要があります。アンカーとエイリアスはローカル解析器が解決し、<<: *common がマッピングを指す場合はサービスにマージされるため、マージキー経由のイメージも一覧に表示されます。解決できない場合は、イメージ不足と決めつけずにその旨を表示します。
何も実行しません。docker compose の実行、Docker デーモンへの接続、イメージの取得は行いません。${POSTGRES_PASSWORD} のような変数は解決せず、.env ファイルも読みません。profiles や extends は構造としてのみ確認します。Compose のバージョン差は再現しないため、最終確認は実際に使うバージョンで行ってください。
解析はブラウザー内で完結し、貼り付けた内容は送信されず、オフラインでも検証できます。大きなファイルは端末のメモリに依存し、読み込めるのは 1 ドキュメントずつです。2 つ目の --- ドキュメントがあるファイルは行番号付きで拒否されます。