前回の続きの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
トラブルシューティング
他のマシンで実行すると問題がないので、原因はエラーが起きるこのマシンのどこかにあります。次の順序で試していきました。
- Dockerイメージを削除
- Docker Desktopを再インストール
- 設定をデフォルト設定にリセット
結果、最後の「設定をデフォルト設定にリセット」で直りました。
設定をデフォルト設定にリセットする方法
以下のように操作します。
(1) メニューバーのDockerアイコンから「Troubleshoot」を選択する。
(2) 「Troubleshoot」ウインドウから「Reset to factory defaults」ボタンをクリックする。
投稿者プロフィール

最新の投稿
HowTo2022.02.13Ubuntu Server のシステム更新
書籍執筆2022.02.10ARKitの物理シミュレーション
書籍執筆2022.02.04ARKitでコリジョンとアニメーション
HowTo2022.01.30MayaからUSD, USDZを書き出す方法