ARG N8N_VERSION=2.1.1

# ------------------------------------------------
# 1) busybox-static (sh, sed, mkdir, etc.)
# ------------------------------------------------
FROM alpine:3.23 AS busybox-builder
RUN apk add --no-cache busybox-static

# ------------------------------------------------
# 2) jq + su-exec
# ------------------------------------------------
FROM alpine:3.23 AS tools-builder
RUN apk add --no-cache jq su-exec

# ------------------------------------------------
# 3) claude-code
# ------------------------------------------------
FROM node:20-alpine AS node-builder
RUN npm install -g @anthropic-ai/claude-code

# ------------------------------------------------
# 4) Final image (n8n distroless)
# ------------------------------------------------
FROM docker.n8n.io/n8nio/n8n:${N8N_VERSION}

USER root

# ---- busybox (static) ----
COPY --from=busybox-builder /bin/busybox /bin/busybox
RUN ["/bin/busybox", "--install", "/bin"]

# ---- jq + su-exec ----
COPY --from=tools-builder /usr/bin/jq /usr/bin/jq
COPY --from=tools-builder /sbin/su-exec /sbin/su-exec

# ---- claude-code ----
COPY --from=node-builder /usr/local/lib/node_modules /usr/local/lib/node_modules
COPY --from=node-builder /usr/local/bin/claude /usr/local/bin/claude

ENV PATH="/usr/local/bin:/bin:/sbin:${PATH}"

# ---- entrypoint ----
WORKDIR /data
COPY docker-entrypoint.sh /tmp/docker-entrypoint.sh
RUN chmod +x /tmp/docker-entrypoint.sh

ENTRYPOINT ["/bin/sh", "/tmp/docker-entrypoint.sh"]
EXPOSE 5678