GCRにコンテナをデプロイしてみよう!と思ってやってみたら意外とつまづいたので、記事にしたいと思います。
前提として、
- dockerのimageが作成済みである
- gcloudコマンドが使用できる
としております。
Container Registry のタグ付け
ローカルでビルドしたイメージにはリポジトリ名が明示されていないため、以下に示すdocker tag
コマンドでGCRにpushできる別名を設定する必要があります。
※以下のサンプルは、postgresのimageです。
# タグ付け前
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
postgres 11-alpine 05602e6d633a 8 days ago 156MB
では、タグを付けていきます。
$ docker tag 05602e6d633a gcr.io/GCPのプロジェクトID/postgres
結果を見てみましょう
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
postgres 11-alpine 05602e6d633a 8 days ago 156MB
gcr.io/wikijs-ttk-start/postgres 11-alpine 05602e6d633a 8 days ago 156MB
これでタグをつけることができました。
次は、Container Registry にアップロードしていきます。
Container Registryへアップロード
以下のコマンドを実行して、アップロードしていきます。
※ここで、GCPの接続についてエラーが出る方は、GCPの接続が済んでいないことが原因として考えられるので、エラー内容で検索してみてください。
APIを有効にしていないことも考えられます。
$ gcloud docker -- push {gcr.ioから始まるimage名}
# 今回のsample
$ gcloud docker -- push gcr.io/wikijs-ttk-start/postgres
これでアップロードが完了しました。
GCPのコンソールから確認してみると、アップロードしたimageができているはずです。