2025-01-03 14:18:13 +00:00
|
|
|
# ビルドステージ
|
|
|
|
FROM node:22.12.0-alpine AS builder
|
2024-12-25 05:29:02 +00:00
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
# パッケージファイルをコピーしてインストール
|
|
|
|
COPY package*.json ./
|
2025-01-03 14:18:13 +00:00
|
|
|
|
|
|
|
# devDependencies を含むすべての依存パッケージをインストール
|
2024-12-25 05:29:02 +00:00
|
|
|
RUN npm install
|
|
|
|
|
2025-01-03 14:18:13 +00:00
|
|
|
# ソースコードをコピーして TypeScript でビルド
|
2024-12-25 05:29:02 +00:00
|
|
|
COPY . .
|
|
|
|
RUN npm run build
|
|
|
|
|
2025-01-03 14:18:13 +00:00
|
|
|
# 本番ステージ
|
|
|
|
FROM node:22.12.0-alpine
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
# パッケージファイルをコピーしてインストール(本番用)
|
|
|
|
COPY package*.json ./
|
|
|
|
RUN npm install --production
|
|
|
|
|
|
|
|
# ビルド済みファイルをコピー
|
|
|
|
COPY --from=builder /app/dist ./dist
|
|
|
|
|
2024-12-25 05:29:02 +00:00
|
|
|
COPY wait-for-it.sh /wait-for-it.sh
|
|
|
|
RUN chmod +x /wait-for-it.sh
|
|
|
|
|
2025-01-03 14:18:13 +00:00
|
|
|
# MySQL サーバーの起動を待機してアプリを起動
|
2024-12-25 05:29:02 +00:00
|
|
|
CMD ["/bin/sh", "/wait-for-it.sh", "db", "3306", "--", "npm", "run", "start"]
|