【解決】Docker Composeで原因不明の認証エラー

以前、Docker Composeで原因不明の認証エラーが起きて、解決できたのでそれについて書きます。

スポンサーリンク

症状

ユニットテストで通信する相手のサーバーをDockerでコンテナ化しています。Gitから一式を取ってきて、いつものようにdocker-composeでイメージをビルドして、コンテナを実行するように、以下を実行しました。

$ docker-compose up -d --build

しかし、今回は変なログが出力され、イメージのビルドは中断されてしまいました。ずっとエラーなく実行できていた環境なのですが、何かが起きたようです。イメージのビルドはなしで、コンテナの実行だけを行うように、以下を入力すると、問題なくコンテナが実行されました。

$ docker-compose up -d

イメージのビルドはエラー

コンテナは実行できて、問題なく使用できましたが、Dockerfileを編集して、イメージを再ビルドしたいと思っても次のエラーが起きてビルドができないという状態が継続するようになってしまいました。

Creating network "unittestmockserver_default" with the default driver
Building nginx
Traceback (most recent call last):
  File "docker-compose", line 6, in 
  File "compose/cli/main.py", line 72, in main
  File "compose/cli/main.py", line 128, in perform_command
  File "compose/cli/main.py", line 1077, in up
  File "compose/cli/main.py", line 1073, in up
  File "compose/project.py", line 548, in up
  File "compose/service.py", line 351, in ensure_image_exists
  File "compose/service.py", line 1106, in build
  File "site-packages/docker/api/build.py", line 261, in build
  File "site-packages/docker/api/build.py", line 308, in _set_auth_headers
  File "site-packages/docker/auth.py", line 311, in get_all_credentials
  File "site-packages/docker/auth.py", line 262, in _resolve_authconfig_credstore
  File "site-packages/docker/auth.py", line 287, in _get_store_instance
  File "site-packages/docker/credentials/store.py", line 25, in __init__
docker.credentials.errors.InitializationError: docker-credential-gcloud not installed or not available in PATH
[7430] Failed to execute script docker-compose

トラブルシューティング

他のマシンで実行すると問題がないので、原因はエラーが起きるこのマシンのどこかにあります。次の順序で試していきました。

  1. Dockerイメージを削除
  2. Docker Desktopを再インストール
  3. 設定をデフォルト設定にリセット

結果、最後の「設定をデフォルト設定にリセット」で直りました。

スポンサーリンク

設定をデフォルト設定にリセットする方法

以下のように操作します。

(1) メニューバーのDockerアイコンから「Troubleshoot」を選択する。

Troubleshootを選択する

(2) 「Troubleshoot」ウインドウから「Reset to factory defaults」ボタンをクリックする。

Reset to factory defaults ボタンをクリックする

スポンサーリンク
最新情報をチェックしよう!