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