From 01e7a93caca4ae677544c4cf8bf9838bf24d6340 Mon Sep 17 00:00:00 2001 From: ntki72 Date: Fri, 3 Jan 2025 23:18:13 +0900 Subject: [PATCH] =?UTF-8?q?Dockerfile=E3=82=92=E6=9B=B4=E6=96=B0=E3=81=97?= =?UTF-8?q?=E3=80=81=E3=83=93=E3=83=AB=E3=83=89=E3=82=B9=E3=83=86=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=82=92=E8=BF=BD=E5=8A=A0=E3=80=82devDependencies?= =?UTF-8?q?=E3=82=92=E5=90=AB=E3=82=80=E4=BE=9D=E5=AD=98=E3=83=91=E3=83=83?= =?UTF-8?q?=E3=82=B1=E3=83=BC=E3=82=B8=E3=81=AE=E3=82=A4=E3=83=B3=E3=82=B9?= =?UTF-8?q?=E3=83=88=E3=83=BC=E3=83=AB=E3=81=A8=E6=9C=AC=E7=95=AA=E7=94=A8?= =?UTF-8?q?=E3=81=AE=E4=BE=9D=E5=AD=98=E3=83=91=E3=83=83=E3=82=B1=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=81=AE=E3=82=A4=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC?= =?UTF-8?q?=E3=83=AB=E3=82=92=E5=88=86=E9=9B=A2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index e8cc3b4..8185ed7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,32 @@ -FROM node:22.12.0-alpine +# ビルドステージ +FROM node:22.12.0-alpine AS builder WORKDIR /app # パッケージファイルをコピーしてインストール COPY package*.json ./ + +# devDependencies を含むすべての依存パッケージをインストール RUN npm install -# ソースコードをコピーしてビルド +# ソースコードをコピーして TypeScript でビルド COPY . . RUN npm run build +# 本番ステージ +FROM node:22.12.0-alpine + +WORKDIR /app + +# パッケージファイルをコピーしてインストール(本番用) +COPY package*.json ./ +RUN npm install --production + +# ビルド済みファイルをコピー +COPY --from=builder /app/dist ./dist + COPY wait-for-it.sh /wait-for-it.sh RUN chmod +x /wait-for-it.sh -# シェルスクリプトを使って、MySQL サーバーの起動を待機 +# MySQL サーバーの起動を待機してアプリを起動 CMD ["/bin/sh", "/wait-for-it.sh", "db", "3306", "--", "npm", "run", "start"]