docker-credential-osxkeychainってなんやねん!よくわからんけどなんとかした@macOS
何もしてないのに壊れた
こんにちは、ひよつくです。
これはほぼ備忘録+共有です。
暇な人だけ最後まで読んで下さい。
docker コマンド動かない
いきなりローカル上でdockerコマンドが使えなくなり、以下の対応をしたら治った。
エラーログ
$ docker pull nginx
Using default tag: latest
error getting credentials - err: exec: "docker-credential-osxkeychain": executable file not found in $PATH, out: ``
なんやねんこれ
わからん。
Copilotに聞いたらDockerの ~/.docker/config.json 見せろと言われて見せても解決しなかった。
あれこれイジれと言ってくるけど、ちょっと怖いので一旦Copilotは無視する。
とりあえずログそのままググってみる。
なんかこれの内容に似たようなことを言ってるブログがいっぱいあったが、なんでそれで治るのか教えてくれよ。
まあとりあえずやってみる。
実行環境&やったこと
- macOS
Tahoe 26.1 - Rancher Desktop
v1.21.0
再起動しても変わらない - brew upgrade docker
意味なし
パッチバージョン上がっただけ - 謎のインストール
security unlock-keychain
brew install docker-credential-helper
なんかこれで治った
マジでなにこれ?
結論
docker-credential-helper 入れたら治った。
疑問
なんで docker-credential-helper なるものの追加インストール必要になった??
我々はその理由を探すために密林の奥地へと旅立った。
Rancher Deskcopのせい?
まずはRancherを疑ってみる。
大体こいつが怪しい。
それで見つけたのがこれ
うーん、どうやら docker-credential-helpers: 0.9.4がバンドルに入ってるので普通にインストールしてそうだ。
そしたら何か他のツールが上書きした?
AIに調査させよう
Copilot Agentにとりあえず調査させてみた。
そしたら10分くらいのプロンプト格闘の末、このIssueを見つけてくれた。
ふむふむ、docker-credential-osxkeychain は ~/.rd/bin の中にあるから他の人は再現できませんでしたと... あっ...アレ...?
思い出した
先月helmを4.0にアップグレードしようとしてbrew経由でアップグレードしたら、$PATHも更新されないしCLIも更新されないことがあった。
それで where helm してみたところ、/opt/homebrew/bin/helm 以外にも ~/.rd/bin/helm もあって、$PATHは .rdの方を優先的に参照しているようだった。
そのとき "RancherがインストールしてくれるHelmいらなくね、自分で入れるし"と思って .rdごと消したんだった...
さーせんやっぱり自分のせいです!
結論2
ホームディレクトリのやつは下手に消すのやめよう!!!!
終わり!!!
Discussion