Nuxt3デプロイ用Dockerファイル記述方法

この記事を書いたチーム:frontier
Nuxt3デプロイ用Dockerファイル記述方法

デプロイ用DockerイメージをビルドするためのDockerファイルの記述方法について説明したいと思います。AWS ECSやEC2上でDockerを使用する際にはDockerイメージをECRなどのレジストリからイメージを取得してDockerコンテナを起動します。サーバー上でDockerコンテナを起動するためには予めDockerイメージをビルドして、レジストリにプッシュしておかなければなりません。 

 

Nuxt3用Dockerファイル 

 

このDockerファイルで行っていることは主に6つです。 

  1. ローカルに存在するソースコードをコピーする(COPY . .)
  2. 2. ライブラリをインストールする(RUN yarn build)
  3. 3. ソースコードのビルド(RUN yarn build)
  4. 4. 実行ユーザーをrootから新規に作成したユーザーに変更(User exampleUser)
  5. 5. builderでビルドしたファイルをコピーする(Copy –from=builder /app/.output .)
  6. 6. ビルドしたファイルを実行(ENTRYPOINT [“node”, “server/mjs”]

 

From句が2つ存在しますが、これはマルチステージビルドというDockerの記述方法になります。前半の部分でソースコードのビルドを行い、後半の部分がAWSのサーバーで実行されるDockerイメージになります。後半のCopy –from=builder /app/.output . の部分で前半の部分でビルドしたファイルをコピーしています。--from=builderは一行目のas builderと対応しておりbuilderの/app/.outputディレクトリを現在のイメージにコピーしています。 

 

{{ECR_INFRA_REPOSITORY_NAME}}はECRに予めアップロードしたイメージ名になります。おそらく実際にイメージをビルドしてECRなどにプッシュするのはCICDツールになると思うので環境変数としてECR_INFRA_REPOSITORY_NAMEをCICDツールで設定します。 

Smallitのサービス