Testing / Dockerfile
legends810's picture
Update Dockerfile
d18e153 verified
raw
history blame
2.4 kB
###############################################################################
# n8n for Hugging Face Spaces – gzip fully disabled via custom extension
###############################################################################
FROM docker.n8n.io/n8nio/n8n:latest
################ Runtime env vars #############################################
ENV N8N_HOST=0.0.0.0 \
N8N_PROTOCOL=http \
DB_TYPE=sqlite \
DB_SQLITE_DATABASE=/home/node/.n8n/database.sqlite \
N8N_COMMUNITY_PACKAGES_ENABLED=true \
# नीचे वाले flag रहने दीजिये – पर अब JS extension भी लगेगा
N8N_DISABLE_PRODUCTION_MAIN_PROCESS_RESPONSE_COMPRESSION=true \
N8N_DISABLE_PRODUCTION_WEBHOOK_RESPONSE_COMPRESSION=true \
N8N_BASIC_AUTH_ACTIVE=false \
N8N_USER_MANAGEMENT_DISABLED=true \
N8N_LOG_LEVEL=info \
# ➜ custom extension path
N8N_CUSTOM_EXTENSIONS=/home/node/n8n-custom
################ Copy custom extension ########################################
USER node
RUN mkdir -p /home/node/n8n-custom
# JS file repo में जिस path पर है वही copy करें
COPY n8n-custom/disableCompression.js /home/node/n8n-custom/
################ Start script ##################################################
USER root
RUN set -e; \
cat >/usr/local/bin/start.sh <<'SH' && \
chmod +x /usr/local/bin/start.sh
#!/bin/sh
set -eu
N8N_PORT="${PORT:-7860}"
export N8N_PORT
# ----- build public URL ------------------------------------------------------
if [ -n "${SPACE_ID:-}" ]; then
SPACE_SLUG=$(printf '%s' "$SPACE_ID" | tr '/_' '-')
APP_URL="https://${SPACE_SLUG}.hf.space"
elif [ -n "${SPACE_HOST:-}" ]; then
APP_URL="https://${SPACE_HOST}"
elif [ -n "${HOSTNAME:-}" ] && echo "$HOSTNAME" | grep -q '\.hf\.space'; then
APP_URL="https://${HOSTNAME}"
else
APP_URL="http://localhost:${N8N_PORT}"
fi
# NOTE: trailing slash हटाया है ताकि double-slash न बने
export N8N_BASE_URL="${APP_URL}"
export WEBHOOK_URL="${APP_URL}"
export N8N_EDITOR_BASE_URL="${APP_URL}"
echo "🚀 n8n starting on ${N8N_PORT} | Public URL: ${APP_URL}"
exec n8n start
SH
USER node
EXPOSE 7860
HEALTHCHECK --interval=30s --timeout=10s --start-period=45s --retries=3 \
CMD sh -c 'curl -f http://localhost:${PORT:-7860}/healthz || exit 1'
ENTRYPOINT ["tini", "--"]
CMD ["start.sh"]