Merge "种子浏览加分类接口" into main
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..af607d2
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,15 @@
+# Build stage

+#FROM registry.cn-hangzhou.aliyuncs.com/library/node:18-alpine as build-stage

+FROM node:18-alpine AS build

+WORKDIR /app

+COPY package*.json ./

+RUN npm install

+COPY .. .

+RUN npm run build

+

+# Production stage

+#FROM registry.cn-hangzhou.aliyuncs.com/library/nginx:stable-alpine as production-stage

+FROM nginx:stable-alpine AS base

+COPY --from=build /app/dist /usr/share/nginx/html

+EXPOSE 80

+CMD ["nginx", "-g", "daemon off;"] 
\ No newline at end of file
diff --git a/nginx.conf b/nginx.conf
new file mode 100644
index 0000000..7dd34cc
--- /dev/null
+++ b/nginx.conf
@@ -0,0 +1,39 @@
+server {

+    listen 80;

+    server_name localhost;

+

+    # 前端静态文件

+    location / {

+        root /usr/share/nginx/html;

+        index index.html index.htm;

+        try_files $uri $uri/ /index.html;

+    }

+

+    # API 请求代理到后端

+    location /api {

+        proxy_pass http://backend:8080;

+        proxy_http_version 1.1;

+        proxy_set_header Upgrade $http_upgrade;

+        proxy_set_header Connection 'upgrade';

+        proxy_set_header Host $host;

+        proxy_set_header X-Real-IP $remote_addr;

+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

+        proxy_set_header X-Forwarded-Proto $scheme;

+        proxy_cache_bypass $http_upgrade;

+

+        # 处理 CORS

+        add_header 'Access-Control-Allow-Origin' '*';

+        add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';

+        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,sapling-token';

+

+        if ($request_method = 'OPTIONS') {

+            return 204;

+        }

+    }

+

+    # 健康检查

+    location /health {

+        access_log off;

+        return 200 "healthy\n";

+    }

+}
\ No newline at end of file