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