Dockerfileを更新し、ビルドステージを追加。devDependenciesを含む依存パッケージのインストールと本番用の依存パッケージのインストールを分離。
This commit is contained in:
parent
fd0c5d5065
commit
01e7a93cac
21
Dockerfile
21
Dockerfile
@ -1,17 +1,32 @@
|
|||||||
FROM node:22.12.0-alpine
|
# ビルドステージ
|
||||||
|
FROM node:22.12.0-alpine AS builder
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# パッケージファイルをコピーしてインストール
|
# パッケージファイルをコピーしてインストール
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
|
|
||||||
|
# devDependencies を含むすべての依存パッケージをインストール
|
||||||
RUN npm install
|
RUN npm install
|
||||||
|
|
||||||
# ソースコードをコピーしてビルド
|
# ソースコードをコピーして TypeScript でビルド
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN npm run build
|
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
|
COPY wait-for-it.sh /wait-for-it.sh
|
||||||
RUN chmod +x /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"]
|
CMD ["/bin/sh", "/wait-for-it.sh", "db", "3306", "--", "npm", "run", "start"]
|
||||||
|
Loading…
Reference in New Issue
Block a user