6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HajimariAdvent Calendar 2024

Day 22

Cloud Run × Cloud Build Next.jsをCloud Runにデプロイするときの備忘録

Posted at

はじめに

Next.jsで作成したWebアプリケーションをGoogle Cloudのインフラを活用してデプロイする際、Cloud BuildCloud Runを組み合わせることで、効率的でスケーラブルな環境を構築できます。本記事では、その手順を備忘録としてまとめました。


Cloud Buildとは

Cloud Buildは、Google Cloudが提供するCI/CDツールです。コードのビルド、テスト、コンテナ化、デプロイなどのプロセスを自動化できます。

Cloud Build 公式


Cloud Runとは

Cloud Runは、Google Cloudが提供する完全マネージドなコンテナ実行環境です。
Cloud Buildと組み合わせることで簡単にwebアプリをデプロイできます。
デフォルトでhttpsのURLも付いてくる優れ物!
Cloud Run 公式


前提

この記事では、Google Cloud上での手順に焦点を当てています。そのため、以下を前提とします:

  • GitHubのリポジトリにNext.jsプロジェクトが用意されている。
  • DockerfileがNext.jsプロジェクト内に配置されている。

Google Cloudのセットアップ

1. 使用するAPIの有効化

Google Cloudプロジェクトを作成し、以下のAPIを有効化します:

  • Cloud Build API

2. Cloud Runのリポジトリ接続設定

Cloud Runの管理画面から「リポジトリを接続」を選択します。

3. サービス作成画面でCloud Buildの設定

サービス作成画面で「Cloud Buildの設定」に進みます。

サービス作成画面

4. リポジトリとブランチの設定

Next.jsプロジェクトが含まれるリポジトリ、対象ブランチ、およびDockerfileのパスを入力します。

注意: GitHubとGoogle Cloudの連携が未設定の場合は、GitHubの「Integrations/Applications」からGoogle Cloudとの連携を設定してください。

5. サービス名とリージョンの入力

適切な「サービス名」と「リージョン」を設定します。

6. 認証の設定

「未認証の呼び出しを許可」を選択します。今回はNext.jsで公開することを想定してこの設定を使用します。

7. 作成

設定が完了したら「作成」をクリックします。しばらく待つと、Cloud Runのサービス画面に表示されるURLからデプロイ済みアプリケーションを確認できます。

環境変数の利用

環境変数を利用する場合は、以下の手順を追加で行います。

8. Dockerfileに環境変数の設定を追加

以下のようにARGENVをDockerfileに記述します:

ARG _API_URL
ENV API_URL=$_API_URL

9. Cloud Buildトリガーを編集

対象のCloud Buildトリガーを開きます。

10. Cloud Build構成ファイルの編集

構成エディタを開き、以下の変更を加えます。
CloudBuild構成

Buildコマンドに--build-argを追加

  - name: gcr.io/cloud-builders/docker
    args:
      - build
      - '--no-cache'
      - '--build-arg'
      - '_API_URL=${_API_URL}'
      - '-t'
      - >-
        $_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA
      - .
      - '-f'
      - [Dockerfileパス]
    id: Build

substitutionsに環境変数を追加

  _API_URL: [バックエンドAPIサーバーURL]

11. 保存と実行

編集内容を保存し、Cloud Buildトリガー画面から「実行」または、対象ブランチにpushして再度CI/CDプロセスを実行します。

これにより、環境変数が反映されたWebアプリがデプロイされます。

終わりに

この記事では、Cloud BuildとCloud Runを活用したNext.jsアプリのデプロイ手順を解説しました。
インフラ周りの設定は最初の構築時以降あまり触れないことが多いため、備忘録として記録しておくと便利です。
これを機に効率的な運用を目指し、知識を定着させていきたいと思います。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?