tfrere HF Staff commited on
Commit
3d8d74d
·
1 Parent(s): 6df81e7

feat: add Playwright + Chromium to Dockerfile for PDF generation

Browse files

- Install system dependencies for headless Chromium
- Install Playwright Chromium browser during build
- Copy CSS source files for the HTML renderer
- Add ENABLE_PDF=true environment variable
- Install fonts for proper text rendering

Made-with: Cursor

Files changed (1) hide show
  1. Dockerfile +32 -0
Dockerfile CHANGED
@@ -8,16 +8,48 @@ RUN npm run build
8
 
9
  FROM node:20-slim
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  WORKDIR /app
12
  COPY backend/package.json backend/package-lock.json* ./
13
  RUN npm install --omit=dev
 
 
 
 
14
  COPY backend/ ./
15
  RUN npx tsc
16
 
17
  COPY --from=frontend-build /app/frontend/dist ./frontend-dist
18
 
 
 
 
19
  ENV PORT=8080
20
  ENV NODE_ENV=production
 
21
  EXPOSE 8080
22
 
23
  CMD ["node", "dist/server.js"]
 
8
 
9
  FROM node:20-slim
10
 
11
+ RUN apt-get update && apt-get install -y --no-install-recommends \
12
+ libglib2.0-0 \
13
+ libnss3 \
14
+ libnspr4 \
15
+ libatk1.0-0 \
16
+ libatk-bridge2.0-0 \
17
+ libcups2 \
18
+ libdrm2 \
19
+ libdbus-1-3 \
20
+ libxkbcommon0 \
21
+ libatspi2.0-0 \
22
+ libxcomposite1 \
23
+ libxdamage1 \
24
+ libxfixes3 \
25
+ libxrandr2 \
26
+ libgbm1 \
27
+ libpango-1.0-0 \
28
+ libcairo2 \
29
+ libasound2 \
30
+ libwayland-client0 \
31
+ fonts-noto-color-emoji \
32
+ fonts-liberation \
33
+ && rm -rf /var/lib/apt/lists/*
34
+
35
  WORKDIR /app
36
  COPY backend/package.json backend/package-lock.json* ./
37
  RUN npm install --omit=dev
38
+
39
+ # Install Playwright Chromium (optional, controlled by ENABLE_PDF)
40
+ RUN npx playwright install chromium || echo "Playwright install skipped"
41
+
42
  COPY backend/ ./
43
  RUN npx tsc
44
 
45
  COPY --from=frontend-build /app/frontend/dist ./frontend-dist
46
 
47
+ # Copy CSS source files for the HTML renderer
48
+ COPY frontend/src/styles/ ./frontend-styles/
49
+
50
  ENV PORT=8080
51
  ENV NODE_ENV=production
52
+ ENV ENABLE_PDF=true
53
  EXPOSE 8080
54
 
55
  CMD ["node", "dist/server.js"]