Cloud Run+Artifact Registoryによるコンテナアプリ(Docker)のデプロイ手順

目次

前提条件

  • Dockerイメージが作成されていること
  • gcloud CLI がインストールされていること

参考サイト

■Dockerイメージの作成方法

gcloud CLIのインストールサイト(公式サイト)

①Artifact Registryリポジトリの作成

Dockerイメージを格納するためのリポジトリを作成します。

STEP
①-1 リポジトリ作成

Artifact Registryのコンソール画面に遷移し、画面上部の「+ リポジトリの作成」を選択します。

STEP
①-2 作成するリポジトリの設定

以下の設定を行い、作成を選択してリポジトリをデプロイします。

設定項目補足
名前リポジトリの名前
形式Docker
ロケーションタイプリージョン可用性を担保するために冗長化したい場合は「マルチリージョン」を選択してください。
上記以外の設定項目デフォルトのまま詳細設定を行いたい場合、公式サイトを参考に設定してください。
STEP
①-3 Docker認証

ターミナル(コマンドプロンプト、PowerShell 等)で以下コマンドを実行し、Artifact Registry に対して認証を行います。

gcloud auth configure-docker asia-northeast1-docker.pkg.dev

②Artifact Registryリポジトリにイメージをプッシュ

STEP
Dockerイメージのビルド

アプリが配置されているディレクトリに移動し、Dockerイメージをビルドします。

docker build -t asia-northeast1-docker.pkg.dev/<PROJECT_ID>/<REPOSITRY_NAME>/<IMAGE_NAME>:<TAG> .
  • <PROJECT_ID> : Google Cloud プロジェクトの ID
  • <REPOGITRY_NAME> : Artifact Registry のリポジトリ名
  • <IMAGE_NAME>:<TAG> : プッシュする Docker イメージの名前とバージョン

エラーが発生する場合

Docker Engineが起動されていない場合、以下のエラーメッセージが発生します。

ERROR: error during connect: Head "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/_ping": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.

その場合は以下の手順で、Docker Desktopを起動してください。

  1. スタートメニューDocker Desktop を検索し、クリックして起動
  2. 起動後にタスクバーのDockerアイコン(クジラマーク)が表示されるか確認
  3. 数分待ち、再度 docker info を実行して動作を確認
STEP
イメージのタグ付け

作成したDockerイメージに対して、Artifact Registry用のタグ付けを行います。

docker tag <IMAGE_NAME>:<TAG> asia-northeast1-docker.pkg.dev/<PROJECT_ID>/<REPOSITRY_NAME>/<IMAGE_NAME>:<TAG>
  • <PROJECT_ID> : Google Cloud プロジェクトの ID
  • <REPOGITRY_NAME> : Artifact Registry のリポジトリ名
  • <IMAGE_NAME>:<TAG> : プッシュする Docker イメージの名前とバージョン
STEP
Artifact Registryへプッシュ
docker push asia-northeast1-docker.pkg.dev/<PROJECT_ID>/<REPOSITRY_NAME>/<IMAGE_NAME>:<TAG>
  • <PROJECT_ID> : Google Cloud プロジェクトの ID
  • <REPOGITRY_NAME> : Artifact Registry のリポジトリ名
  • <IMAGE_NAME>:<TAG> : プッシュする Docker イメージの名前とバージョン

③コンテナのデプロイ

STEP
③-1 Cloud Runの作成ページに遷移

コンソール画面から[Cloud Run]ページに遷移し、コンテナをデプロイサービスの順に選択します。

STEP
③-2 コンテナのデプロイ

以下の設定を行い、作成を選択してコンテナをデプロイします。

設定項目補足
サービスの種類「既存のコンテナイメージから1つのリビジョンをデプロイする」
コンテナイメージのURL②でArtifact Registryにプッシュしたコンテナイメージ選択を選択すると、Artifact Registry内のコンテナイメージの候補が表示されます。
サービス名Cloud Runのサービス名
リージョンコンテナを実行したいリージョン
認証未認証の呼び出しを許可アプリケーションレイヤーのアクセス制御の有無を選択します。(※)
コンテナポートアプリがリッスンしているポート番号
Ingressすべてネットワークレイヤーのアクセス制御を選択します。
上記以外の設定項目デフォルトのまま
詳細設定を行いたい場合、公式サイトを参考に設定してください。

■アクセス制御を実現したい場合

上記の設定だと全世界のユーザーがコンテナアプリにアクセスできてしまうので、セキュリティの懸念があります。 ※特に開発段階は注意が必要です。

「インターネット公開したいけど、アクセスできるユーザーは限定したい」という場合は、「Identity-Aware Proxy(IAP)」の利用を推奨します。

<IAPのメリット>

  • IAPに登録しているユーザーのみが、アプリにアクセスできるようになる。

④動作確認

STEP
URLの確認

Cloud Runのサービス画面に遷移し、URLを確認します。

STEP
アクセス確認

ブラウザにURLを入力して、アクセスできることを確認します。

【補足】デプロイ済みサービスへの新規リビジョンの追加

アプリソースを変更した場合、作成したサービスに「新規リビジョン」をデプロイすることで変更内容を更新できます。

STEP
修正後ソースをArtifact Registryへプッシュ

②Artifact Registryリポジトリにイメージをプッシュ」の手順に従って、Dockerイメージのビルド・プッシュ行います。 ※タグ付けする際は、既存と異なるタグを設定してください。

STEP
新規リビジョンのデプロイページに遷移

作成したサービスの画面に遷移して、新しいリビジョンの編集とデプロイを選択します。

STEP
新規リビジョンの作成

コンテナイメージのURLに新たにプッシュしたコンテナイメージを選択し、デプロイを選択します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次