解説
Docker Composeを起動する前に確認:configで設定ミスを見つける手順
Composeの起動前に、構文・変数・サービス名を確認する方法。公開ポートの確認と実行時エラーとの違いも整理するよ。

Composeファイルを直したあと、いきなり起動する前にできる確認があるよ。docker compose configを使うと、複数ファイルの組み合わせや変数を反映した設定を確認できる。今回は、設定の検証と実際の起動を分ける手順を紹介するね。
最初は設定を表示せず検証する
Dockerの公式リファレンスによると、configはComposeファイルを読み、変数の解決やファイルの統合を行う。--quietは設定全体を出力せず、検証だけを行うための指定だよ。
docker compose config --quiet
成功時に何も表示されないことがある。エラーが出た場合は、該当箇所を直してもう一度確認しよう。これはサービスを起動するコマンドではないよ。
サービス名だけを確かめる
docker compose config --services
設定から認識されたサービス名が並ぶ。例えばwebを編集したつもりなのに別の名前しか出なければ、作業ディレクトリや読み込んでいるファイルを確認する。複数のファイルを使うなら、起動時と同じ順序で指定しよう。
docker compose -f compose.yaml -f compose.dev.yaml config --quiet

自分で試すための最小ファイル
次を空の作業用フォルダのcompose.yamlに保存すると、設定の検証を試せる。検証自体はイメージを実行しないよ。
services:
web:
image: nginx:alpine
ports:
- "127.0.0.1:${WEB_PORT:-8080}:80"
WEB_PORTを設定しなければ、この例のホスト側ポートは8080になる。これは自分の端末だけから接続する例で、ほかの端末から接続する設定ではないよ。公開範囲はComposeのポートの整理で確認してね。
設定の検証が通っても起動に失敗することはある
configは、設定として扱えるかを確認する入口。指定したIPが今の端末に存在するか、ポートが別のアプリに使われていないか、アプリが正常に動くかは、起動時や起動後の確認が必要になる。
| 確認する段階 | 主に見るもの |
|---|---|
| config --quiet | 設定の読み込みと整合性 |
| config --services | 想定したサービスがあるか |
| 起動時のエラー | IP、ポート、ファイルへのアクセス |
| 起動後のログ・応答 | アプリの状態と依存先への接続 |
共有するログは内容を選ぼう
configを引数なしで実行すると、解決後の設定が表示される。環境変数などに秘密情報があれば、その値が含まれる場合もあるので、結果を丸ごとチャットや公開リポジトリへ貼らないようにしよう。まずは--quietと--servicesを使い、必要な箇所だけを確認する手順にすると扱いやすいよ。
起動後の切り分けはComposeのログの読み方へ。設定、起動、応答の順に見ていこう。

みんなのコメント 0
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。