(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【GCP】コンテナイメージをレジストリ―にビルドする

スポンサーリンク

はじめに

グーグルクラウドでは自前でコンテナレジストリーを持つことができるのでそこにてイメージを保存できるのでその手順をメモしておきます。

GoogleCloudバージョン
$ gcloud --version
Google Cloud SDK 289.0.0
...

コンテナレジストリー

以下のようにGUI上で確認できます。

f:id:mtiit:20200419213825p:plain
コンテナレジストリー

レジストリ名の命名規則は以下のようになっているのでイメージを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ファイルにてタグやイメージを指定する方法もあるので気になる方は調べてみてください。