Dockerfileを更新し、ビルドステージを追加。devDependenciesを含む依存パッケージのインストールと本番用の依存パッケージのインストールを分離。

This commit is contained in:
ntki72 2025-01-03 23:18:13 +09:00
parent fd0c5d5065
commit 01e7a93cac

View File

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