From c295dc1fda8905f045ffbcbeffa984dadbc2927e Mon Sep 17 00:00:00 2001 From: ntki72 Date: Fri, 3 Jan 2025 23:18:51 +0900 Subject: [PATCH] =?UTF-8?q?Dockerfile=E3=81=A8Dockerfile.production?= =?UTF-8?q?=E3=82=92=E6=9B=B4=E6=96=B0=E3=81=97=E3=80=81=E3=83=93=E3=83=AB?= =?UTF-8?q?=E3=83=89=E3=82=B9=E3=83=86=E3=83=BC=E3=82=B8=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=80=82devDependencies=E3=82=92=E5=90=AB=E3=82=80?= =?UTF-8?q?=E4=BE=9D=E5=AD=98=E3=83=91=E3=83=83=E3=82=B1=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=81=AE=E3=82=A4=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E3=82=92=E5=88=86=E9=9B=A2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 21 +++------------------ Dockerfile.production | 23 +++++++++++++++++++---- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8185ed7..e8cc3b4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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"] diff --git a/Dockerfile.production b/Dockerfile.production index 08dacef..8185ed7 100644 --- a/Dockerfile.production +++ b/Dockerfile.production @@ -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"]