| FROM node:20-slim | |
| # 安装 Python 和构建工具(better-sqlite3 需要) | |
| RUN apt-get update && apt-get install -y \ | |
| python3 \ | |
| make \ | |
| g++ \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| # 复制依赖文件 | |
| COPY package.json package-lock.json* ./ | |
| # 安装依赖 | |
| RUN npm install --legacy-peer-deps | |
| # 复制项目文件 | |
| COPY . . | |
| # 构建前端 | |
| RUN npm run build | |
| # 创建数据目录并设置权限 | |
| RUN mkdir -p /app/data && chmod 777 /app/data | |
| # 暴露端口 | |
| EXPOSE 7860 | |
| # 设置环境变量 | |
| ENV NODE_ENV=production | |
| ENV PORT=7860 | |
| ENV DATABASE_URL=file:/app/data/logitech.db | |
| # 启动应用(先初始化数据库再启动) | |
| CMD npm run db:push && npm start |