このガイドは、Docker を使用して SvelteKit アプリケーションをコンテナ化するためのステップバイステップのプロセスを提供し、デプロイと管理を容易にします。開始するには、SvelteKit プロジェクトをセットアップし、Node.js 用のサイト構築を支援する adapter-node をインストールする必要があります。adapter-node はコンテナ化に不可欠であり、`npm i -D @sveltejs/adapter-node` コマンドを実行してインストールできます。インストール後、`svelte.config.js` ファイルを更新して adapter-node を使用する必要があります。
次に、Dockerfile を作成する必要があります。これは、Docker が SvelteKit アプリケーションをビルドして実行する方法を指示します。Dockerfile は、ビルダーステージと最終ステージの 2 つのステージで構成されます。ビルダーステージでは、依存関係のインストール、SvelteKit アプリのビルド、本番環境のみの依存関係の削除を行います。最終ステージでは、ビルド済みのアプリ、本番環境の node_modules、package.json をビルダーステージからコピーし、ポート 3000 を公開し、環境を本番環境に設定し、アプリを実行するコマンドを指定します。
Docker ビルドコンテキストをクリーンに保ち、ビルドプロセスを高速化するために、プロジェクトルートに `.dockerignore` ファイルを作成する必要があります。マルチステージビルドを使用すると、ビルドプロセス後に不要なファイルやツールを破棄することで、最終的なイメージのサイズを小さくできます。`docker build -t my-sveltekit-app` コマンドを実行して Docker イメージをビルドし、`docker run -p 3000:3000 my-sveltekit-app` でコンテナ化されたアプリを実行できます。
Docker での環境変数の処理は重要であり、SvelteKit は環境変数をインポートするための 4 つの方法を提供しています。アプリをデプロイする際には、ビルド時とランタイムの環境変数の処理について、プラットフォームのドキュメントを参照する必要があります。さらに、クロスサイト POST フォーム送信エラーを回避するために、ORIGIN 環境変数を正しく設定する必要があります。
最後に、このガイドでは、アプリに `/health` エンドポイントを追加すること、Node.js のメモリ制限を設定すること、コンテナの脆弱性を定期的にスキャンすることなど、本番環境に関するいくつかのヒントを提供しています。これらの手順に従うことで、本番環境に最適化された Docker 化された SvelteKit アプリケーションを作成できます。
dev.to
How to Dockerize SvelteKit
Create attached notes ...
