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

This commit is contained in:
ntki72 2025-01-03 23:18:51 +09:00
parent 01e7a93cac
commit c295dc1fda
2 changed files with 22 additions and 22 deletions

View File

@ -1,32 +1,17 @@
# ビルドステージ
FROM node:22.12.0-alpine AS builder
FROM node:22.12.0-alpine
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"]

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 ./
RUN npm install --production
# ソースコードをコピーしてビルド
# 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"]