forked from colin/resume
2
0
Fork 0
lucky-ddg/docker/resume/Dockerfile

46 lines
1.1 KiB
Docker

FROM caddy:2.7-alpine
# Install dependencies including Chromium and required libraries for Puppeteer
RUN apk add --no-cache \
nodejs \
npm \
bash \
chromium \
nss \
freetype \
freetype-dev \
harfbuzz \
ca-certificates \
ttf-freefont
# Set Puppeteer to use system Chromium
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
# Set working directory
WORKDIR /srv
# Copy website files
COPY . /srv
# Install npm dependencies for PDF generation
RUN cd /srv && npm install --production
# Run all update scripts (sitemap, navigation, stories, CSP hashes, accessibility fixes)
RUN cd /srv && \
chmod +x update-all.sh && \
./update-all.sh
# Generate PDFs for all pages (only if they don't already exist)
RUN if [ ! -d "/srv/pdfs" ] || [ -z "$(ls -A /srv/pdfs 2>/dev/null)" ]; then \
cd /srv && npm run generate-pdfs; \
else \
echo "PDFs already exist, skipping generation"; \
fi
# Expose port
EXPOSE 8080
# Start Caddy with the local Caddyfile
CMD ["caddy", "run", "--config", "/srv/Caddyfile.local"]