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

前回の続きのUI Testingについて書こうと思ったのですが、その前に、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」ボタンをクリックする。

 

関連記事

  1. GPGの鍵の生成方法

  2. Markdownの編集環境をセットアップする

  3. Swiftでコマンドラインツールを作る(コマンドライン引数と標準入出力…

  4. Confluenceから良い感じのPDFを作れる様にしてみた

  5. SwiftでのバッファアクセスはwithUnsafeBytesを使う

  6. 犬用インスリン注射の打ち方

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事

  1. 2020.10.21

    GitLabへの移行