Dockerfile 975 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # 多自媒体平台管理系统 - 后端服务 Dockerfile
  2. FROM node:20-slim
  3. # 安装 Playwright 依赖
  4. RUN apt-get update && apt-get install -y \
  5. libnss3 \
  6. libnspr4 \
  7. libatk1.0-0 \
  8. libatk-bridge2.0-0 \
  9. libcups2 \
  10. libdrm2 \
  11. libdbus-1-3 \
  12. libxkbcommon0 \
  13. libatspi2.0-0 \
  14. libxcomposite1 \
  15. libxdamage1 \
  16. libxext6 \
  17. libxfixes3 \
  18. libxrandr2 \
  19. libgbm1 \
  20. libpango-1.0-0 \
  21. libcairo2 \
  22. libasound2 \
  23. && rm -rf /var/lib/apt/lists/*
  24. # 安装 pnpm
  25. RUN npm install -g pnpm
  26. WORKDIR /app
  27. # 复制依赖文件
  28. COPY package.json pnpm-lock.yaml* ./
  29. # 安装依赖
  30. RUN pnpm install --frozen-lockfile --prod
  31. # 复制源代码
  32. COPY . .
  33. # 构建
  34. RUN pnpm build
  35. # 安装 Playwright 浏览器
  36. RUN npx playwright install chromium
  37. # 创建上传目录
  38. RUN mkdir -p uploads/videos uploads/images uploads/covers logs
  39. # 设置环境变量
  40. ENV NODE_ENV=production
  41. ENV PORT=3000
  42. EXPOSE 3000
  43. CMD ["node", "dist/app.js"]