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"]