はじめに
グーグルクラウドでは自前でコンテナレジストリーを持つことができるのでそこにてイメージを保存できるのでその手順をメモしておきます。
GoogleCloudバージョン
$ gcloud --version Google Cloud SDK 289.0.0 ...
コンテナレジストリー
以下のようにGUI上で確認できます。
レジストリ名の命名規則は以下のようになっているのでイメージをbuildする際はこちらに従います。
[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
ホスト名の箇所はgcr.ioがデフォルトですが、例えばアジアに配置したければ「asia.gcr.io」等を選ぶことができます。
Dockerfileを元にビルドしたイメージを登録する
gcloud builds
にてビルドできます。以下がオプション。
$ gcloud builds ... Available commands for gcloud builds: cancel Cancel an ongoing build. describe Get information about a particular build. list List builds. log Stream the logs for a build. submit Submit a build using Google Cloud Build.
カレントディレクトリにDockerfileがある状態で以下コマンドを発行すればbuildが走ります。
$ gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/hoge-image . Creating temporary tarball archive of 10 file(s) totalling 7.4 KiB before compression. Uploading tarball of [.] to [gs://....tgz] Created [https://cloudbuild.googleapis.com/v1/projects/...4/builds/...]. ... ID CREATE_TIME DURATION SOURCE IMAGES STATUS .. 2020-.. 14S gs://.../source/..tgz gcr.io/../hoge-image (+1 more) SUCCESS
ここでプロジェクトIDを自分のレジストリーにせずbuildすると以下のようにリトライを繰り返して失敗します。
The push refers to repository [gcr.io/hoge] 299f4f6d5ba0: Preparing beee9f30bc1f: Preparing 299f4f6d5ba0: Retrying in 5 seconds ...
終わりに
GoogleCloudのコンテナレジストリーを利用する流れです。ちなみにこのイメージはdocker image ls
では表示されません。
今回はDockerfileを利用しましたがyamlファイルにてタグやイメージを指定する方法もあるので気になる方は調べてみてください。