49 lines
1,019 B
Docker
49 lines
1,019 B
Docker
FROM node:20-bookworm-slim
|
|
|
|
ENV NODE_ENV=production \
|
|
TZ=UTC \
|
|
PUPPETEER_CACHE_DIR=/opt/puppeteer \
|
|
PUPPETEER_SKIP_DOWNLOAD=0
|
|
|
|
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
dumb-init \
|
|
qpdf \
|
|
poppler-utils \
|
|
libasound2 \
|
|
libatk-bridge2.0-0 \
|
|
libatk1.0-0 \
|
|
libcups2 \
|
|
libdrm2 \
|
|
libgbm1 \
|
|
libgtk-3-0 \
|
|
libnss3 \
|
|
libpango-1.0-0 \
|
|
libpangocairo-1.0-0 \
|
|
libx11-6 \
|
|
libx11-xcb1 \
|
|
libxcb1 \
|
|
libxcomposite1 \
|
|
libxdamage1 \
|
|
libxext6 \
|
|
libxfixes3 \
|
|
libxrandr2 \
|
|
libxrender1 \
|
|
libxshmfence1 \
|
|
libxkbcommon0 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /opt/forgejo-pdf
|
|
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci --omit=dev
|
|
|
|
COPY src ./src
|
|
COPY scripts ./scripts
|
|
COPY assets ./assets
|
|
|
|
RUN node scripts/copy-assets.js \
|
|
&& node scripts/generate-manifest.js
|
|
|
|
ENTRYPOINT ["dumb-init", "--"]
|
|
CMD ["node", "src/index.js"]
|