This commit is contained in:
2026-08-31 18:01:34 +08:00
parent 3ea59551db
commit bee439cf34
46 changed files with 1884 additions and 1898 deletions
+3 -1
View File
@@ -3,7 +3,9 @@
# ============================================
# 复制为 .env 并按服务器实际服务地址修改
# API 对外端口
# API / 前端对外端口
FRONTEND_PORT=80
BACKEND_PORT=8000
MOLDINSIGHT_PORT=8000
INVENTORY_PORT=8001
+13
View File
@@ -0,0 +1,13 @@
FROM node:20-alpine AS build
WORKDIR /app/frontend
COPY frontend/package*.json ./
RUN npm install
COPY frontend/ ./
RUN npm run build
FROM nginx:1.27-alpine
COPY deploy/nginx/frontend.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/frontend/dist /usr/share/nginx/html
EXPOSE 80
-2
View File
@@ -2,8 +2,6 @@ FROM gemold-base:latest
COPY src/inventory/ /app/src/inventory/
COPY src/entrypoints/ /app/src/entrypoints/
COPY static/ /app/static/
RUN mkdir -p /app/logs
EXPOSE 8001
-1
View File
@@ -17,7 +17,6 @@ COPY src/inventory/ /app/src/inventory/
COPY src/entrypoints/ /app/src/entrypoints/
COPY src/celery_app.py src/celery_tasks.py /app/src/
COPY uploads/ /app/uploads/
COPY static/ /app/static/
COPY html_output/ /app/html_output/
RUN mkdir -p /app/logs
+17 -10
View File
@@ -8,25 +8,32 @@ echo === 构建基础镜像 ===
docker build -t gemold-base:latest -f deploy\Dockerfile.base .
echo.
echo === 构建 MoldInsight 镜像 (含 PythonOCC) ===
docker build -t gemold-moldinsight:latest -f deploy\Dockerfile.moldinsight .
echo.
echo === 构建 Inventory 镜像 ===
docker build -t gemold-inventory:latest -f deploy\Dockerfile.inventory .
echo === 构建统一后端镜像 ===
docker build -t gemold-backend:latest -f deploy\Dockerfile.moldinsight .
echo.
echo === 构建 Celery Worker 镜像 ===
docker build -t gemold-celery:latest -f deploy\Dockerfile.celery .
echo.
echo.
echo === 构建前端镜像 (Nginx 静态站点) ===
docker build -t gemold-frontend:latest -f deploy\Dockerfile.frontend .
echo.
echo === 全部构建完成 ===
echo.
echo 启动完整系统:
echo cd deploy ^&^& docker compose --profile full up -d
echo 启动完整系统(前端 + unified backend + celery):
echo docker compose --profile full up -d
echo.
echo 仅启动 unified backend:
echo docker compose --profile unified up -d
echo.
echo 仅启动前端入口:
echo docker compose --profile frontend up -d
echo.
echo 仅启动进销存:
echo cd deploy ^&^& docker compose --profile inventory up -d
echo docker compose --profile inventory up -d
echo.
echo 仅启动模具分析:
echo cd deploy ^&^& docker compose --profile moldinsight up -d
echo docker compose --profile moldinsight up -d
+17 -10
View File
@@ -10,25 +10,32 @@ echo "=== 构建基础镜像 ==="
docker build -t gemold-base:latest -f deploy/Dockerfile.base .
echo ""
echo "=== 构建 MoldInsight 镜像 (含 PythonOCC) ==="
docker build -t gemold-moldinsight:latest -f deploy/Dockerfile.moldinsight .
echo ""
echo "=== 构建 Inventory 镜像 ==="
docker build -t gemold-inventory:latest -f deploy/Dockerfile.inventory .
echo "=== 构建统一后端镜像 ==="
docker build -t gemold-backend:latest -f deploy/Dockerfile.moldinsight .
echo ""
echo "=== 构建 Celery Worker 镜像 ==="
docker build -t gemold-celery:latest -f deploy/Dockerfile.celery .
echo ""
echo ""
echo "=== 构建前端镜像 (Nginx 静态站点) ==="
docker build -t gemold-frontend:latest -f deploy/Dockerfile.frontend .
echo ""
echo "=== 全部构建完成 ==="
echo ""
echo "启动完整系统:"
echo " cd deploy && docker compose --profile full up -d"
echo "启动完整系统(前端 + unified backend + celery):"
echo " docker compose --profile full up -d"
echo ""
echo "仅启动 unified backend:"
echo " docker compose --profile unified up -d"
echo ""
echo "仅启动前端入口:"
echo " docker compose --profile frontend up -d"
echo ""
echo "仅启动进销存:"
echo " cd deploy && docker compose --profile inventory up -d"
echo " docker compose --profile inventory up -d"
echo ""
echo "仅启动模具分析:"
echo " cd deploy && docker compose --profile moldinsight up -d"
echo " docker compose --profile moldinsight up -d"
+46
View File
@@ -0,0 +1,46 @@
upstream gemold_backend_upstream {
server backend:8000;
}
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
location /assets/ {
try_files $uri =404;
access_log off;
expires 30d;
add_header Cache-Control "public, max-age=2592000, immutable";
}
location /api/ {
proxy_pass http://gemold_backend_upstream;
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;
}
location /health {
proxy_pass http://gemold_backend_upstream;
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;
}
location /html/ {
proxy_pass http://gemold_backend_upstream;
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;
}
location / {
try_files $uri $uri/ /index.html;
}
}