# Basado en la imagen oficial de n8n
FROM docker.io/n8nio/n8n:latest

USER root

# 1. Recuperar el gestor de paquetes apk (Fijado a Alpine v3.20 para evitar conflictos con libapk3)
RUN ARCH=$(uname -m) && \
    wget -qO- "http://dl-cdn.alpinelinux.org/alpine/v3.20/main/${ARCH}/" | \
    grep -o 'href="apk-tools-static-[^"]*\.apk"' | head -1 | cut -d'"' -f2 | \
    xargs -I {} wget -q "http://dl-cdn.alpinelinux.org/alpine/v3.20/main/${ARCH}/{}" && \
    tar -xzf apk-tools-static-*.apk && \
    cp sbin/apk.static /sbin/apk && \
    rm -rf apk-tools-static-*.apk sbin && \
    /sbin/apk -X http://dl-cdn.alpinelinux.org/alpine/v3.20/main -U --allow-untrusted --initdb add apk-tools

# 2. Instalación de dependencias de sistema (Alpine)
RUN apk update && \
    apk add --no-cache python3 py3-pip poppler-utils ffmpeg fontconfig docker && \
    rm -rf /var/cache/apk/*

# 3. Configuración del grupo Docker (GID 145 para coincidir con tu host)
RUN delgroup docker || true && \
    addgroup -g 145 docker && \
    adduser node docker

# 4. Preparación de carpetas críticas para n8n v2.0
RUN mkdir -p /home/node/.n8n-files \
             /data/pipeline \
             /files \
             /opt/piper_voces \
             /tmp/n8n-local && \
    chown -R node:node /home/node/.n8n-files \
                       /data/pipeline \
                       /files \
                       /opt/piper_voces \
                       /tmp/n8n-local && \
    chmod -R 775 /data/pipeline /files /opt/piper_voces

# 5. Volvemos al usuario node para la ejecución
USER node

WORKDIR /home/node
