| FROM node:18-alpine | |
| # 安装必要的系统依赖 | |
| RUN apk add --no-cache bash curl | |
| # 设置工作目录 | |
| WORKDIR /app | |
| # 复制前端所有文件(包括配置文件) | |
| COPY frontend/ ./frontend/ | |
| # 复制后端package.json | |
| COPY backend/package*.json ./backend/ | |
| # 安装前端依赖并构建 | |
| WORKDIR /app/frontend | |
| RUN npm install | |
| RUN npm run build | |
| # 安装后端依赖 | |
| WORKDIR /app/backend | |
| RUN npm install --omit=dev | |
| # 复制后端代码 | |
| WORKDIR /app | |
| COPY backend/ ./backend/ | |
| # 设置工作目录为后端 | |
| WORKDIR /app/backend | |
| # 暴露端口 | |
| EXPOSE 7860 | |
| # 健康检查 | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=15s --retries=3 \ | |
| CMD curl -f http://localhost:7860/api/health || exit 1 | |
| # 启动应用 | |
| CMD ["npm", "start"] |