Docker push Google Container Registry 編

さらに新しい編。ドカベンか!

今度は、Google Container Registry へのpushを試してみます。

始める前の準備

Container Registry のクイックスタート
https://cloud.google.com/container-registry/docs/quickstart?hl=ja

プロジェクトは既存のものを使用します。
課金の設定もしてあります。
Container Registry APIの有効化は、こちらのページのリンクボタンからGCP画面へ飛んで行って、ボタンを押していけばできます。
Google Cloud SDKはインストール済みでしたので、ここもスキップ。
この時にインストールしたのですね。
サイト引っ越し、そして、再引っ越し(Part2)
https://www.programmers-office.ml/2018/12/22/%E3%82%B5%E3%82%A4%E3%83%88%E5%BC%95%E3%81%A3%E8%B6%8A%E3%81%97%E3%80%81%E3%81%9D%E3%81%97%E3%81%A6%E3%80%81%E5%86%8D%E5%BC%95%E3%81%A3%E8%B6%8A%E3%81%97%EF%BC%88part2%EF%BC%89/

Dockerもインストール済み。ビルド済み。
認証から行きます。

認証してpush

gcloud auth configure-docker

でDocker config fileへの更新確認をされるので、Yで進めます。

次にイメージにタグをつけます。
そしてpushしようとすると、認証できていない・・・

denied: Token exchange failed for project ‘xxx’. Caller does not have permission ‘storage.buckets.create’. To configure permissions, follow instructions at: https://cloud.google.com/container-registry/docs/access-control

バックエンドとして Cloud Storage バケットを使用している、ということで、そちらの設定が必要ということです。
となると、Always Freeの範囲内かが気になりますが、下記を参照して、リージョンを考えましょう。
Cloud Storage の Always Free の使用制限
https://cloud.google.com/storage/pricing?hl=ja
Regionalでus-east1を選択します。

その上で、gsutil lsを叩いて、そのストレージが表示されることを確認します。私の場合、gcloud auth loginで認証をやり直して、gcloud config set project PROJECT_IDでプロジェクトを選択し直して、表示されるようになりました。

そうすると、pushできるようになりました。

pushはできるんですよ、pushは・・・