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"]