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 をクリックし、結果をお楽しみください!
 
        Sébastien Chopin
       
 
        Nazaré da Piedade
       
 
        Nobu
       
 
        川音리오
       
 
        Maciek Palmowski
       
 
        Nestor Vera
       
 
        Daniel Roe
       
 
        Yue Yang
       
 
        Jeronimas
       
 
        Alessandro Carrano
       
 
        Clément Ollivier
       
 
        Alexander Lichter
       
 
        N3-rd
       
 
        Adrien Zaganelli
       
 
        Mag
       
 
        Stefan Huber
       
 
        Olga Bulat
       
 
        Paiva
       
 
        Florian Reuschel
       
 
        Savas Vedova
       
 
        Steven
       
 
        Vinícius Alves
       
 
        Kareem Dabbeet
       
 
        Valentín Costa
       
 
        Ryan Skinner
       
 
        Alex Hirzel
       
 
        Ajeet Chaulagain
       
 
        René Eschke
       
 
        Nico Devs
       
 
        Muhammad
       
 
        Naoki Hamada
       
 
        Tom
       
 
        Yann Aufray
       
 
        Anthony Chu
       
 
        Nuzhat Minhaz
       
 
        Lucas Portet
       
 
        Richard Schloss
       
 
        Bobby
       
 
        bpy
       
 
        Antony Konstantinidis
       
 
        Hibariya
       
 
        Jose Seabra
       
 
        Eze
       
 
        Florian Lefebvre
       
 
        Lucas Recoaro
       
 
        Julien SEIXAS