DESIGN / CODE / INFRA / AI

解説

Docker Composeを起動する前に確認:configで設定ミスを見つける手順

Composeの起動前に、構文・変数・サービス名を確認する方法。公開ポートの確認と実行時エラーとの違いも整理するよ。

Docker Composeを起動する前に確認:configで設定ミスを見つける手順

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

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。