Describe the problem/error/question
We have a custom n8n Docker image that installs system-level tools via apk on top of the base n8n image. This works fine on 1.122.5 where Alpine’s package manager is available.
When upgrading to 2.x or even 1.123.33, the distroless image has no package manager, so our Dockerfile fails at the apk add step.
Our workflows use the ExecuteCommand node to call these system tools on files — this is core to our use case and not replaceable by a community node.
What is the recommended approach for adding system-level dependencies to n8n 2.x? Is there an official extensible base image planned, or is a multi-stage Docker build the expected path forward?
What is the error message (if any)?
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
Share the output returned by the last node
Information on your n8n setup
- n8n version: 1.122.5
- Database (default: SQLite): SQLite
- n8n EXECUTIONS_PROCESS setting (default: own, main): main
- Running n8n via (Docker, npm, n8n cloud, desktop app): docker
- Operating system: Windows
welcome to the n8n community @Pixelhead
I’d avoid treating the distroless image as the place to install system tools. The docs describe the distroless variant as intentionally excluding package managers, shells, and extra utilities, so if Execute Command depends on OS-level binaries, I’d strongly lean toward moving those dependencies into a separate helper container/service and letting n8n orchestrate it, or using a non-distroless image for that specific workload. I haven’t seen official docs confirming a planned “extensible” base image or explicitly recommending multi-stage builds as the supported path, so I’d be careful not to present that as official guidance.
Thanks!! is there a specific non-distroless n8n image tag you’d recommend for self-hosted instances that need OS-level tool access? We tried latest-debian, but it returned version 0.222.0 which is outdated. Is there a current maintained non-distroless tag for 1.123.33 or 2.17.5?
I don’t think there’s a current maintained non-distroless -debian tag for 1.123.33 or 2.17.5. Docker Hub shows the current maintained tags as the plain version tags, while latest-debian appears to point to an old 0.222.0 image, and the visible -debian tags seem to stop around 0.237.0. So I’d be careful about using latest-debian and would probably ask the team directly whether a supported non-distroless image still exists for newer releases.
thanks for your time and help
Just for the sake of others that might come after - We have decided to alter the architecture a bit to use a sidecar for the tools called upon by n8n with an http request node rather than the execute command node… Much cleaner in terms of dependencies via updates and higher degree of security.