Hugging8N / Dockerfile
somratpro's picture
fix: move NODE_OPTIONS definition after dns-fix.js is copied to prevent build errors
c45f3dd
raw
history blame
1.48 kB
FROM node:22-slim
ARG N8N_VERSION=latest
ENV DEBIAN_FRONTEND=noninteractive \
N8N_PORT=5678 \
HF_HUB_DISABLE_PROGRESS_BARS=1 \
PYTHONUNBUFFERED=1 \
PIP_ROOT_USER_ACTION=ignore
RUN apt-get update && apt-get install -y -q --no-install-recommends \
ca-certificates \
curl \
git \
jq \
python3 \
python3-pip \
python3-venv \
sqlite3 \
tini \
&& pip3 install -q --no-cache-dir --break-system-packages huggingface_hub \
&& npm install -g --loglevel=error n8n@${N8N_VERSION} \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p /home/node/app /home/node/.n8n && \
chmod 700 /home/node/.n8n && \
chown -R node:node /home/node
WORKDIR /home/node/app
COPY --chown=node:node health-server.js /home/node/app/health-server.js
COPY --chown=node:node dns-fix.js /opt/dns-fix.js
# Set NODE_OPTIONS after dns-fix.js is copied so it doesn't break npm install during build
ENV NODE_OPTIONS="--dns-result-order=ipv4first --require /opt/dns-fix.js"
COPY --chown=node:node n8n-sync.py /home/node/app/n8n-sync.py
COPY --chown=node:node setup-uptimerobot.sh /home/node/app/setup-uptimerobot.sh
COPY --chown=node:node start.sh /home/node/app/start.sh
RUN chmod +x /home/node/app/start.sh /home/node/app/setup-uptimerobot.sh
USER node
EXPOSE 7861
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s \
CMD curl -f http://localhost:7861/health || exit 1
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["/home/node/app/start.sh"]