2024年5月17日
.docker/config.jsonのauthの作り方
基本的なところで無駄にハマってしまったので自分への戒め。
~/.docker/config.json に入っている Docker の認証情報は以下のような構造をしています(Docker Desktop だと OS の機密情報ストアを使っていたりするので {} だったりします)。
{ "auths": { "https://index.docker.io/v1/": { "auth": "c3R...zE2" } } }
これを手で作って認証が通らないと思ったら echo の使い方が悪いだけだったので記事にしときます。
auth フィールドの値は Basic 認証と同じくユーザー名とパスワードをコロン : で区切った文字列を base64 エンコードしたものです。
echo "c3R...zE2" | base64 --decode
なので、上のコマンドでデコードすると janedoe:xxxxxxxxxxx というような出力を得られます。
auth フィールドの値を作るときは上記の逆をやれば OK です。
echo -n "janedoe:xxxxxxxxxxx" | base64
-n をつけないと最後に改行が入ってしまうので、-n 必須です。ここを見落として時間を溶かしました、トホホ・・・。