Skip to content

Commit c3b9922

Browse files
committed
build(docker): Update to refactor Dockerfile for improved dependency management and build process
1 parent 88c9eca commit c3b9922

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

Dockerfile

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,37 @@
1+
# 基礎映像檔
12
FROM node:20-alpine AS dependencies-env
23
RUN npm i -g pnpm
3-
COPY . /app
4+
WORKDIR /app
45

6+
# 開發環境依賴
57
FROM dependencies-env AS development-dependencies-env
6-
COPY ./package.json pnpm-lock.yaml /app/
7-
WORKDIR /app
8+
COPY package.json pnpm-lock.yaml ./
89
RUN pnpm i --frozen-lockfile
910

11+
# 生產環境依賴
1012
FROM dependencies-env AS production-dependencies-env
11-
COPY ./package.json pnpm-lock.yaml /app/
12-
WORKDIR /app
13+
COPY package.json pnpm-lock.yaml ./
1314
RUN pnpm i --prod --frozen-lockfile
1415

16+
# 建置環境
1517
FROM dependencies-env AS build-env
16-
COPY ./package.json pnpm-lock.yaml /app/
17-
COPY --from=development-dependencies-env /app/node_modules /app/node_modules
18-
WORKDIR /app
18+
COPY . .
19+
COPY --from=development-dependencies-env /app/node_modules ./node_modules
1920
RUN pnpm build
21+
# 檢查建置結果
22+
RUN ls -la build/server/
2023

24+
# 最終執行環境
2125
FROM dependencies-env
22-
COPY ./package.json pnpm-lock.yaml /app/
23-
COPY --from=production-dependencies-env /app/node_modules /app/node_modules
24-
COPY --from=build-env /app/build /app/build
25-
WORKDIR /app
26+
# 複製專案檔案
27+
COPY . .
28+
COPY package.json pnpm-lock.yaml ./
29+
# 複製生產環境依賴
30+
COPY --from=production-dependencies-env /app/node_modules ./node_modules
31+
# 複製建置結果
32+
COPY --from=build-env /app/build ./build
33+
# 檢查檔案
34+
RUN ls -la build/server/
35+
36+
# 設定啟動指令
2637
CMD ["pnpm", "start"]

0 commit comments

Comments
 (0)