colima起動時にdocker-credential-desktop resolves to executable in current directory のエラーが出る場合の対処
PCを再起動した後、iTermを起動する際に時折、Dockerに関するエラーが発生します。このエラーは、「Send text at start」に/opt/homebrew/bin/colima start
と入力したセッションを作成し、複数のタブで同一のセッションを使用した結果、発生しました。根本的な解決策は、各タブごとに異なるセッションを用意することです。しかし、再起動によって解決することもあるため、放置していました。
その中で、記事タイトルにも含まれているエラーが発生しました。これは単純な再起動では対処できない問題でした。具体的なエラーの内容と解決方法について説明します。
docker-credential-desktop resolves to executable in current directory
起動時に以下のエラーが発生するようになりました。
error getting credentials - err: docker-credential-desktop resolves to executable in current directory (./docker-credential-desktop), out: ``
問題は、docker-credential-desktopの設定が作業ディレクトリ内に存在しなかったことです。他の作業ディレクトリの設定を考慮に入れ、共通設定を確認しましょう。dockerのconfigは~/.docker/config.json
にあります。
当環境では以下のようになっていました。
{ "auths": { "https://index.docker.io/v1/": {} }, "credsStore": "desktop", "currentContext": "colima" }
credsStoreはDockerでの認証情報ストアの参照先で、今回はdesktop、つまりDockerDesktopを指します。これはdocker-credential-desktopが呼び出されるということです。認証情報ストアの詳細については公式ドキュメントを参照してください。
DockerDesktopはライセンスの都合で削除されているため、参照先として見つかるはずがありません。
解消方法
シンプルにcredsStore設定を削除します。
{ "auths": { "https://index.docker.io/v1/": {} }, "currentContext": "colima" }
credsStore
のキーをcredStore
に書き換えることで対応することも可能です。しかし、この方法では不要な設定が残り続けることになります。
あとがき
DockerDesktopをライセンスの問題で削除した後、認証情報センター設定の再参照がこれまで発生していませんでした。しかし、今回改めて発生したため、問題が起きました。この問題は理解すればシンプルで、対策を講じると設定自体が消えるので、おそらく今後は発生しないでしょう。