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

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

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

 

Nuxt3用Dockerファイル 

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

 

この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ツールで設定します。 

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス