n8n/docker/images/runners
n8n-cat-bot[bot] a1d58630cc
chore(core): Bump task-runner-launcher in runners image (#30763)
Co-authored-by: n8n-cat-bot[bot] <n8n-cat-bot[bot]@users.noreply.github.com>
Co-authored-by: Declan Carroll <declan@n8n.io>
2026-05-20 08:31:06 +00:00
..
Dockerfile chore(core): Bump task-runner-launcher in runners image (#30763) 2026-05-20 08:31:06 +00:00
Dockerfile.distroless chore(core): Bump task-runner-launcher in runners image (#30763) 2026-05-20 08:31:06 +00:00
n8n-task-runners.json fix(core): Preserve NODE_PATH for globally installed npm packages in Docker (#26898) 2026-03-11 16:41:07 +00:00
README.md chore: Remove N8N_RUNNERS_ENABLED env variable (no-changelog) (#23885) 2026-01-12 13:38:33 +00:00

n8n - Task runners (n8nio/runners) - (PREVIEW)

n8nio/runners image includes JavaScript runner, Python runner and Task runner launcher that connects to a Task Broker running on the main n8n instance when running in external mode. This image is to be launched as a sidecar container to the main n8n container.

Task runners are used to execute user-provided code in the Code Node, isolated from the n8n instance.

For official documentation, please see here.

For a distroless variant of this image, see here.

For development purposes only, see below.

Testing locally

1) Make a production build of n8n

pnpm run build:n8n

2) Build the task runners image

docker buildx build \
  -f docker/images/runners/Dockerfile \
  -t n8nio/runners \
  .

3) Start n8n on your host machine with Task Broker enabled

N8N_RUNNERS_MODE=external \
N8N_RUNNERS_AUTH_TOKEN=test \
N8N_LOG_LEVEL=debug \
pnpm start

4) Start the task runner container

docker run --rm -it \
-e N8N_RUNNERS_AUTH_TOKEN=test \
-e N8N_RUNNERS_LAUNCHER_LOG_LEVEL=debug \
-e N8N_RUNNERS_TASK_BROKER_URI=http://host.docker.internal:5679 \
-p 5680:5680 \
n8nio/runners

If you need to add extra dependencies (custom image), follow these instructions.