youtube_live_calendar/Dockerfile.production

36 lines
878 B
Docker
Raw Permalink Normal View History

# ビルドステージ
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 . .
# ビルド済みファイルをコピー
COPY --from=builder /app/dist ./dist
COPY wait-for-it.sh /wait-for-it.sh
RUN chmod +x /wait-for-it.sh
# MySQL サーバーの起動を待機してアプリを起動
CMD ["/bin/sh", "/wait-for-it.sh", "db", "3306", "--", "npm", "run", "start"]