|
|
|
|
|
FROM node:20-alpine |
|
|
|
|
|
|
|
|
ARG N8N_VERSION=latest |
|
|
ARG N8N_PATH=/home/node/.n8n |
|
|
|
|
|
|
|
|
ENV N8N_USER_FOLDER=$N8N_PATH |
|
|
ENV N8N_DISABLE_PRODUCTION_MAIN_PROCESS_BETA=true |
|
|
|
|
|
|
|
|
ENV NODE_FUNCTION_ALLOW_EXTERNAL=puppeteer,playwright |
|
|
|
|
|
|
|
|
|
|
|
ENV DB_TYPE=postgresdb |
|
|
ENV DB_POSTGRESDB_HOST="" |
|
|
ENV DB_POSTGRESDB_PORT=5432 |
|
|
ENV DB_POSTGRESDB_DATABASE=postgres |
|
|
ENV DB_POSTGRESDB_USER=postgres |
|
|
ENV DB_POSTGRESDB_PASSWORD="" |
|
|
ENV DB_POSTGRESDB_SSL=true |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
USER root |
|
|
RUN apk add --no-cache \ |
|
|
git \ |
|
|
procps-ng \ |
|
|
# Playwright 的瀏覽器依賴 (Alpine Linux) |
|
|
udev \ |
|
|
ttf-freefont \ |
|
|
chromium \ |
|
|
nss \ |
|
|
freetype \ |
|
|
harfbuzz \ |
|
|
ca-certificates \ |
|
|
dbus-glib \ |
|
|
fontconfig |
|
|
|
|
|
|
|
|
RUN npm install -g n8n@${N8N_VERSION} playwright puppeteer --omit=dev |
|
|
|
|
|
|
|
|
|
|
|
RUN npx playwright install |
|
|
|
|
|
|
|
|
|
|
|
RUN mkdir -p ${N8N_PATH} && \ |
|
|
chown -R node:node /home/node /usr/local/lib/node_modules |
|
|
|
|
|
|
|
|
USER node |
|
|
WORKDIR /home/node |
|
|
|
|
|
|
|
|
EXPOSE 5678 |
|
|
|
|
|
|
|
|
CMD sh -c 'echo "-----------------------------------------------------" && \ |
|
|
echo "n8n is running!" && \ |
|
|
echo "Access it at: https://${SPACE_HOST}" && \ |
|
|
echo "-----------------------------------------------------" && \ |
|
|
n8n' |