File tree Expand file tree Collapse file tree 2 files changed +36
-21
lines changed
Expand file tree Collapse file tree 2 files changed +36
-21
lines changed Original file line number Diff line number Diff line change 1- FROM node:20-alpine AS dependencies-env
1+ # 建置階段
2+ FROM node:20-alpine AS build
23RUN npm i -g pnpm
3- COPY . /app
4-
5- FROM dependencies-env AS development-dependencies-env
6- COPY ./package.json pnpm-lock.yaml /app/
74WORKDIR /app
5+ COPY package.json pnpm-lock.yaml ./
86RUN pnpm i --frozen-lockfile
9-
10- FROM dependencies-env AS production-dependencies-env
11- COPY ./package.json pnpm-lock.yaml /app/
12- WORKDIR /app
13- RUN pnpm i --prod --frozen-lockfile
14-
15- 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
7+ COPY . .
198RUN pnpm build
209
21- 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- CMD [ "pnpm" , "start" ]
10+ # 運行階段
11+ FROM nginx:alpine
12+ # 複製構建檔案
13+ COPY --from=build /app/build/client /usr/share/nginx/html
14+ # 複製 nginx 配置
15+ COPY nginx.conf /etc/nginx/conf.d/default.conf
Original file line number Diff line number Diff line change 1+ server {
2+ listen 80 ;
3+
4+ # 加入 MIME 類型設定
5+ include /etc/nginx/mime.types ;
6+
7+ location / {
8+ root /usr/share/nginx/html;
9+ try_files $uri $uri / /index .html;
10+
11+ # 設定 JavaScript 模組的 MIME 類型
12+ location ~ * \.js$ {
13+ add_header Content-Type "application/javascript" ;
14+ }
15+
16+ location ~ * \.mjs$ {
17+ add_header Content-Type "application/javascript" ;
18+ }
19+ }
20+
21+ # 正確處理 assets 資料夾
22+ location /assets/ {
23+ root /usr/share/nginx/html;
24+ add_header Cache-Control "public, max-age=31536000, immutable" ;
25+ }
26+ }
You can’t perform that action at this time.
0 commit comments