diff --git a/Dockerfile b/Dockerfile index 56a91e1..7066afb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.19 AS base +FROM node:23-alpine # Аргументы для настройки ARG N8N_VERSION=latest @@ -13,14 +13,13 @@ RUN apk add --no-cache \ redsocks \ gnupg \ netcat-openbsd \ - nodejs-current \ npm \ su-exec \ && npm install -g n8n@${N8N_VERSION} \ && rm -rf /var/cache/apk/* # Создание пользователя и домашней директории -# RUN adduser -D -s /bin/sh node && mkdir -p /home/node/.n8n +RUN adduser -D -s /bin/sh node && mkdir -p /home/node/.n8n # Копирование скрипта и установка прав COPY start-n8n.sh /start.sh @@ -30,7 +29,7 @@ RUN chmod +x /start.sh RUN echo "base { log_debug = off; log_info = on; log = stderr; daemon = off; redirector = iptables; } redsocks { local_ip = 127.0.0.1; local_port = 12345; ip = ${SOCKS_IP}; port = 1080; type = socks5; }" > /etc/redsocks.conf # USER node -# WORKDIR /home/node +WORKDIR /home/node EXPOSE 5678 ENTRYPOINT ["/start.sh"] \ No newline at end of file diff --git a/start-n8n.sh b/start-n8n.sh index 52a4581..8d330c0 100644 --- a/start-n8n.sh +++ b/start-n8n.sh @@ -21,5 +21,12 @@ iptables -t nat -A OUTPUT -p tcp -d 10.0.0.0/8 -j RETURN 2>/dev/null || true iptables -t nat -A OUTPUT -p tcp -d 172.16.0.0/12 -j RETURN 2>/dev/null || true iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 12345 2>/dev/null || true +N8N_BIN="/usr/local/bin/n8n" + +if [ ! -x "$N8N_BIN" ]; then + echo "n8n binary not found at $N8N_BIN" + exit 1 +fi + # Start n8n -exec n8n \ No newline at end of file +exec su-exec node "$N8N_BIN" \ No newline at end of file