52 lines
1.2 KiB
Docker
52 lines
1.2 KiB
Docker
# Start with the official n8n image
|
|
FROM n8nio/n8n:2.12.0
|
|
|
|
# Copy apk and its deps from Alpine 3.23
|
|
COPY --from=alpine:3.23 /sbin/apk /sbin/apk
|
|
COPY --from=alpine:3.23 /usr/lib/libapk.so* /usr/lib/
|
|
|
|
# Switch to root to install dependencies
|
|
USER root
|
|
|
|
# Install Chromium and necessary dependencies for Puppeteer
|
|
RUN set -x \
|
|
&& apk update \
|
|
&& apk upgrade \
|
|
&& apk add --no-cache \
|
|
udev \
|
|
chromium \
|
|
nss \
|
|
freetype \
|
|
harfbuzz \
|
|
ca-certificates \
|
|
ttf-freefont \
|
|
wget \
|
|
nodejs \
|
|
npm
|
|
|
|
# Set environment variable for Puppeteer to find Chromium
|
|
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
|
|
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
|
ENV XDG_CONFIG_HOME=/tmp/.chromium
|
|
ENV XDG_CACHE_HOME=/tmp/.chromium
|
|
|
|
# Install Puppeteer
|
|
RUN npm install puppeteer
|
|
|
|
# Install restic and rclone for backups
|
|
RUN apk add --no-cache \
|
|
restic \
|
|
curl \
|
|
unzip
|
|
|
|
# Download and install rclone
|
|
RUN curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip \
|
|
&& unzip rclone-current-linux-amd64.zip \
|
|
&& cd rclone-*-linux-amd64 \
|
|
&& cp rclone /usr/local/bin/ \
|
|
&& chmod 755 /usr/local/bin/rclone \
|
|
&& cd .. && rm -rf rclone-*-linux-amd64*
|
|
|
|
# Revert back to non-root (default n8n user)
|
|
USER node
|