# Imagen oficial de Python basada en Debian Bookworm FROM python:3.11-slim-bookworm # Variables de entorno ENV NODE_VERSION=22.x ENV N8N_PORT=7860 ENV N8N_EXECUTION_PROCESS=main ENV NODE_FUNCTION_ALLOW_BUILTIN=* ENV NODE_FUNCTION_ALLOW_EXTERNAL=* ENV NODES_EXCLUDE="[]" ENV N8N_ENABLE_EXECUTE_COMMAND=true # Lista blanca para autorizar la escritura de archivos ENV N8N_RESTRICT_FILE_ACCESS_TO=/home/node/python_scripts # Carpeta segura de n8n ENV HOME=/home/node ENV N8N_USER_FOLDER=/home/node # Instalación de NodeJS y herramientas RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ build-essential \ python3-dev \ && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ && apt-get install -y nodejs \ && rm -rf /var/lib/apt/lists/* # Instalación de n8n de forma global RUN npm install -g n8n@latest # Creación de las carpetas de trabajo y configuración RUN mkdir -p /home/node/python_scripts RUN mkdir -p /home/node/.n8n # Copy-Paste de scripts y plantillas COPY *.py /home/node/python_scripts/ COPY *.xlsx /home/node/python_scripts/ # Se copian los requerimientos para la instalación COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt # Propiedades + Escritura Global RUN chown -R 1000:1000 /home/node RUN chmod -R 777 /home/node # Petición a Docker que arranque n8n usando el mismo usuario autorizado USER 1000 # Se expone el puerto para un buen arranque EXPOSE 7860 # Arranque de n8n CMD ["n8n", "start", "--port", "7860"]