Nuxt を Google Cloud Run へデプロイする
Nuxt を Google Cloud Run にどうやってデプロイするのか?
Google Cloud Run はコンテナ化されたアプリケーションを迅速に安全にデプロイし、スケーリングするためのフルマネージド・コンピュータ・プラットフォームです。
このガイドでは、簡単にプロジェクトのフォルダ全体を Dockerfile で Google Cloud Build にアップロードします。アップロードした後、Cloud Build は自動でコンテナを生成します。そしてコンテナを package.json の start スクリプトで起動する、Google Cloud Run にデプロイします。
はじめに
Google Cloud Account とプロジェクト、そしてエディターとして Cloud Build と Cloud Run にアクセス権があることを確認してください。さらに Google のこちら で解説されている Cloud SDK (CLI) をダウンロードしてインストールし、Google Cloud Account でログインしてください。もし Cloud SDK をダウンロードしたくない場合、Google Cloud Console から gcloud CLI を使用することができます。
いくつかチェックをしましょう!
Cloud Build API と Cloud Run API が無効の場合、有効にします:
# Cloud Build を有効にする
$ gcloud services enable cloudbuild.googleapis.com
# Cloud Run を有効にする
$ gcloud services enable run.googleapis.com
Go in your application directory and install dependencies:
# yarn ユーザー向け
$ yarn
# npm ユーザー向け
$ npm install
Start the application locally:
# yarn ユーザー向け
$ yarn dev
# npm ユーザー向け
$ npm run dev
全ての動作を確認します。
アプリケーションのコンテナ化
それでは、Cloud Build でコンテナを作成します。
Nuxt アプリケーションに Dockerfile を追加する必要があります。 プロジェクトのルートディレクトリに Dockerfile という名前の新しいファイルを作成し、以下の内容を追加してください:
yarn ユーザー向け:
FROM node:14
WORKDIR /usr/src/app
COPY . ./
RUN yarn
EXPOSE 8080
ENV HOST=0.0.0.0
ENV PORT=8080
RUN yarn build
CMD [ "yarn", "start" ]
npm ユーザー向け:
FROM node:14
WORKDIR /usr/src/app
COPY . ./
RUN npm install
EXPOSE 8080
ENV HOST=0.0.0.0
ENV PORT=8080
RUN npm run build
CMD [ "npm", "run", "start" ]
ビルドプロセスを開始するため、以下のコマンドを実行してください:
gcloud builds submit --tag gcr.io/<YOUR_GOOGLE_CLOUD_PROJECT_ID>/my-nuxt-app-name:1.0.0 .
!注意: もし継続的デリバリーや .env ファイルでの設定を実装したい場合、Cloud Build 構成ファイル を使用する必要があります。
Cloud Run へのアプリケーションのデプロイ
アプリケーションをデプロイするため以下のコマンドを実行してください:
gcloud run deploy --image=gcr.io/<YOUR_GOOGLE_CLOUD_PROJECT_ID>/my-nuxt-app-name:1.0.0 --platform managed --port 3000
パブリックアクセスの設定を行いたい場合、認証されていない起動を許可します。
Cloud Run アプリケーションのデフォルトの同時実行値は 80 であることに注意してください(各コンテナ・インスタンスは、一度に最大 80 のリクエストを処理します)。このようにして同時実行値を指定することができます:
gcloud run deploy --image=gcr.io/<YOUR_GOOGLE_CLOUD_PROJECT_ID>/my-nuxt-app-name:1.0.0 --platform managed --port 3000 --concurrency <YOUR_CONCURRENCY_VALUE>
デプロイメントの作成に成功しているか確認するため、以下のコマンドを実行してください:
gcloud run services list --platform managed
Cloud Run サービスのリストが表示されます。デプロイした URL をクリックし、結果をお楽しみください!
Leoš Literák
Trizotti
Clément Ollivier
Sébastien Chopin
Marcello Bachechi
Rodolphe
Thomas Underwood
Shek Evgeniy
felipesuri
Lukasz Formela
Hugo Torzuoli
Sylvain Marroufin
Kareem Dabbeet
tramplay
Daniel Roe
verebelyicsaba
Adam
Nate Butler
Sandra Rodgers
Arpit Patidar
Matthew Kuehn
Steven DUBOIS
Travis Lindsey
syagawa
Maxime
かる
Al Power
Florent Delerue
quanghm
José Manuel Casani Guerra
Unai Mengual
kazuya kawaguchi
Michael Lynch
Tomachi
pooya parsa
Meir Roth
Brett
Adam Miedema
Thomas Bnt
Kazuki Furukawa
Anthony Ruelle
Christophe Carvalho Vilas-Boas
Roman Harmyder