【解決】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」を選択する。

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

著書紹介

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Akira Hayashi (林 晃)のアバター Akira Hayashi (林 晃) Representative(代表), Software Engineer(ソフトウェアエンジニア)

アールケー開発代表。Appleプラットフォーム向けの開発を専門としているソフトウェアエンジニア。ソフトウェアの受託開発、技術書執筆、技術指導・セミナー講師。note, Medium, LinkedIn
-
Representative of RK Kaihatsu. Software Engineer Specializing in Development for the Apple Platform. Specializing in contract software development, technical writing, and serving as a tech workshop lecturer. note, Medium, LinkedIn

目次