Closed14
SvelteKit アプリを Cloud Run にデプロイしてみる

このスクラップについて
SvelteKit で作成したモックアップを Cloud Run にデプロイする過程を記録する。

Node サーバー
こちらを使えば良いのかな?

インストール
コマンド
npm i -D @sveltejs/adapter-node

svelte.config.js 編集
1 行目のインポートを変更する。
svelte.config.js(抜粋)
import adapter from '@sveltejs/adapter-node';

ビルド
コマンド
npm run build
build ディレクトリが作成された。

環境変数
.env から変数を読み込みたい場合は下記が必要になる。
コマンド
npm install dotenv
起動コマンドも変わる。
コマンド
node -r dotenv/config build

ポート番号
特に何もしなくても PORT 環境変数で起動ポートを指定できる。
コマンド
PORT=8080 node build

package.json 編集
start スクリプトを登録しておく。
package.json
{
"scripts": {
"start": "node build"
}
}

ローカルで確認
コマンド
pack build heartrate-switch-viewer --builder gcr.io/buildpacks/builder
最近投稿した記事が参考になりそうだ。

Docker コンテナ起動
コマンド
docker run --rm -e PORT=3000 -p 3000:3000 --name heartrate-switch-viewer heartrate-switch-viewer
http://localhost:3000/ にアクセスするとページが表示された。

自動デプロイ
この感じだと Cloud Run のソースコードからデプロイが利用できそう。
利用する前にアップロードするファイルを確認しておこう。
コマンド
gcloud meta list-files-for-upload
見た感じ過不足はなさそうだ、.gitignore がそのまま反映されている感じ。
万全を期してコンフィグレーションを再確認。
コマンド
gcloud config configurations activate xxxx
ソースコードからデプロイ実行。
コマンド
gcloud run deploy heartrate-switch-viewer \
--source . \
--platform managed \
--region asia-northeast1 \
--allow-unauthenticated

ビルド失敗
.env が無くて失敗してしまったようだ。
.gitignore から .env を削除して再実行。
今度は無事にデプロイが完了した。

おわりに
スムーズに進んでよかった。
この方法以外にも色々なデプロイがあるようなので機会を作ってぜひ試してみたい。
このスクラップは2023/11/08にクローズされました