0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloud Run 自動デプロイ

Last updated at Posted at 2025-02-24

はじめに

GoogleCloudのCloudRunをキャッチアップするにあたって、実際に手元で触れる環境がほしかったため、サンプルの環境を作成してみる。

適当なアプリ作成

Next.jsのコマンドでDockerファイルを含むプロジェクトを自動生成してくれる。便利すぎる...

yarnで作成しました。

yarn create next-app --example with-docker nextjs-docker

特に質問等もなくコマンド実行でアプリ完成。
Githubにリポジトリ作ってpushする。
Dockerファイル見ればわかるが、ビルド時にlockファイル参照するのでyarn install実行してlockファイル作っておく。
(lockファイルないとビルドに失敗する)

git init
git remote add origin <git url>
git add .
git commit -m "First Commit"
git push origin main

はい完成。

スクリーンショット 2025-02-24 20.56.58.png

なぜかjsonファイルがgitinitされてたのでコミット多め。
yarn.lockもgitに上がってなかった...

Cloud Runへデプロイ

GoogleCloudに新規プロジェクト作成
[プロジェクトの選択] → [新しいプロジェクト]
よしなに名前つける。

スクリーンショット 2025-02-24 21.04.13.png

スクリーンショット 2025-02-24 21.04.24.png

サイドメニューから[CloudRun]開く。
[サービスの作成] → [リポジトリから継続的にデプロイする(ソースまたは関数)]

スクリーンショット 2025-02-24 21.28.09.png

ここでGithubとの接続やリポジトリ選択する必要があるが、認証やAPIが必要な旨の警告が出る場合はそれらに従って必要な手順を踏む。

ビルド構成のブランチはデフォルトでmainブランチが選択されている。
要するに、mainブランチの内容がデプロイされる。(任意で変更可能)
ビルドタイプはDockerfileを選択する。
そのまま[保存]。

スクリーンショット 2025-02-24 21.10.47.png

名前を入力してリージョン選択。今回は大阪にした
次にデプロイするサービスの認証について設定する。認証を必要とする場合は [認証が必要] を選ぶが、今回は誰でもアクセスできるように [未認証の呼び出しを許可] を設定する。

スクリーンショット 2025-02-24 21.21.53.png

そのまま下にスクロールして、コンテナの編集を開く。
コンテナポートが8080になってるが、先ほど作成したNext.jsのサンプルアプリは3000でサーバーが起動するようになっているので3000に変更する。(Dockerファイルに合わせるの内容に合わせる)

スクリーンショット 2025-02-24 21.16.21.png

最後に[作成]を押して数分待つとデプロイが完了する。
HTTPSでアクセスできるURLが自動で発行されるので、このリンクをクリックするとNext.jsアプリを開くことができる。

スクリーンショット 2025-02-24 21.20.10.png

スクリーンショット 2025-02-24 21.23.41.png
(HelloWorldはあとでテストするためにpushした内容)

これで、mainブランチに取り込まれた内容は自動でデプロイされる。

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?