first commit
This commit is contained in:
+62
@@ -0,0 +1,62 @@
|
||||
FROM node:20.18.3-alpine AS builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY package.json ./
|
||||
|
||||
RUN npm config set registry https://registry.npmmirror.com \
|
||||
&& npm install
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN npm run build \
|
||||
&& test -f /app/dist/build/h5/index.html
|
||||
|
||||
FROM nginx:1.29-alpine
|
||||
|
||||
# 清除 Nginx 自带欢迎页,只保留本次构建的 H5 静态文件。
|
||||
RUN rm -rf /usr/share/nginx/html/*
|
||||
|
||||
COPY --from=builder /app/dist/build/h5/ /usr/share/nginx/html/
|
||||
|
||||
# 直接生成与原 static.json 核心规则等价的 Nginx 配置:
|
||||
# 1. 监听线上服务使用的 5000 端口。
|
||||
# 2. 支持外层代理保留或剥离 /h5 前缀。
|
||||
# 3. 未匹配的页面路由统一回退到 index.html。
|
||||
# 4. index.html 禁用缓存,避免发布后继续读取旧页面。
|
||||
RUN test -f /usr/share/nginx/html/index.html \
|
||||
&& printf '%s\n' \
|
||||
'server {' \
|
||||
' listen 5000;' \
|
||||
' listen [::]:5000;' \
|
||||
' server_name _;' \
|
||||
'' \
|
||||
' root /usr/share/nginx/html;' \
|
||||
' index index.html;' \
|
||||
'' \
|
||||
' location = /h5 {' \
|
||||
' return 301 /h5/;' \
|
||||
' }' \
|
||||
'' \
|
||||
' location = /h5/ {' \
|
||||
' rewrite ^ /index.html last;' \
|
||||
' }' \
|
||||
'' \
|
||||
' location /h5/ {' \
|
||||
' rewrite ^/h5/(.*)$ /$1 last;' \
|
||||
' }' \
|
||||
'' \
|
||||
' location / {' \
|
||||
' try_files $uri $uri/ /index.html;' \
|
||||
' }' \
|
||||
'' \
|
||||
' location = /index.html {' \
|
||||
' add_header Cache-Control "no-store, no-cache" always;' \
|
||||
' try_files $uri =404;' \
|
||||
' }' \
|
||||
'}' \
|
||||
> /etc/nginx/conf.d/default.conf
|
||||
|
||||
EXPOSE 5000
|
||||
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
Reference in New Issue
Block a user