Docker Compose の "no configuration file provided: not found" エラー解決方法
問題
Docker Desktop for Windows (WSL2 統合版) を使用している際、特定の docker compose
コマンドを実行すると次のエラーが発生します:
docker compose logs
no configuration file provided: not found
ただし、docker compose up
コマンドは正常に動作し、コンテナのビルドと起動に成功します。
原因
このエラーは主に以下のいずれかが原因で発生します:
- ファイル名の問題:Docker Compose ファイルの命名規則や拡張子の問題
- ファイルパスの問題:ファイルの場所やパスの指定方法の問題
- Docker インストール方法の問題:Snap パッケージによるインストール時の問題
- ファイル形式の問題:実際のファイルタイプと拡張子の不一致
解決方法
1. ファイル名と拡張子の確認
Docker Compose はデフォルトで以下のファイル名を認識します:
docker-compose.yml
docker-compose.yaml
WARNING
以下のようなファイル名では認識されません:
docker.compose.yml
(ドット区切り)dockercompose.yml
(ハイフンなし)docker-compose3.yml
(数字を含む)
適切なファイル名に変更してください:
# 例:不正なファイル名を修正
mv docker.compose.yml docker-compose.yml
mv dockercompose.yml docker-compose.yml
2. カスタムファイル名を使用する場合
デフォルト以外のファイル名を使用する場合は、-f
オプションで明示的に指定する必要があります:
# カスタムファイル名を使用する場合
docker compose -f docker-compose.dev.yml logs
docker compose -f custom-compose.yaml up
docker compose -f <ファイル名> <コマンド>
docker compose -f docker-compose.prod.yml up -d
docker compose -f docker-compose.dev.yaml logs --follow
3. 作業ディレクトリの確認
Docker Compose コマンドは、Compose ファイルが存在するディレクトリで実行する必要があります:
# 正しいディレクトリに移動して実行
cd /path/to/your/project
docker compose logs
WARNING
システムディレクトリ(例:C:\WINDOWS\system32\
)や特定のシステムパスでは動作しない場合があります。ユーザーディレクトリ(例:/home/user/
や C:\Users\username\
)にプロジェクトを配置してください。
4. ファイル拡張子の確認(Windows)
Windows では、拡張子が正しく設定されていない場合があります:
- エクスプローラーを開く
- 「表示」タブ → 「ファイル名拡張子」にチェックを入れる
- ファイルの実際の拡張子を確認(例:
.yml.txt
ではなく.yml
) - 必要に応じて拡張子を修正
5. Snap インストールの問題(Linux)
Ubuntu などで Snap パッケージ経由で Docker をインストールした場合、この問題が発生することがあります:
# Snap 版 Docker を削除
sudo snap remove docker
# 公式リポジトリからインストール
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
# Docker の GPG キーを追加
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# リポジトリを追加
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker をインストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
6. メタデータファイルの作成(特殊なケース)
一部の環境では、metadata.json
ファイルの作成が必要な場合があります:
- Compose ファイルと同じディレクトリに
metadata.json
を作成 - 以下の内容を記述:
{
"ComposeFilePath": "./compose.yml"
}
トラブルシューティング
現在のコンテナ状況の確認
# 実行中のコンテナを表示
docker ps
# すべてのコンテナ(停止中含む)を表示
docker ps -a
コンテナの競合解決
コンテナ名が重複している場合の解決方法:
# 競合しているコンテナを削除
docker rm <コンテナ名またはID>
# 強制再作成
docker compose -f <ファイル名> up --force-recreate --build -d
予防策
- 標準的なファイル名を使用:
docker-compose.yml
またはdocker-compose.yaml
- プロジェクトごとに専用ディレクトリ:各プロジェクトを独立したディレクトリに配置
- 公式インストール方法の使用:Snap ではなく公式リポジトリからインストール
- 拡張子の確認:ファイル保存時に正しい形式(YAML)で保存する
まとめ
「no configuration file provided: not found」エラーは、主に Docker Compose ファイルのパスや名前の認識問題によって発生します。基本的な解決策としては、適切なディレクトリでのコマンド実行、正確なファイル名の使用、必要に応じた -f
オプションの指定などがあります。Linux 環境では Docker のインストール方法にも注意が必要です。
これらの解決策を試しても問題が解決しない場合は、Docker の再インストールや環境の再設定を検討してください。