I would like to run docker commands in a node. For example I would like to execute:
docker run hello-world
There is no docker support in the n8n docker image, so I can’t run Docker images.
NodeOperationError: Command failed: docker run hello-world /bin/sh: docker: not found at Object.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/ExecuteCommand/ExecuteCommand.node.js:76:27) at async Workflow.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-workflow/dist/Workflow.js:658:28) at async /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/WorkflowExecute.js:585:53
- Database you’re using (default: SQLite): PostgreSQL
- Running n8n with the execution process [own(default), main]: default
- Running n8n via [Docker, npm, n8n.cloud, desktop app]: Docker in Kubernetes
So my idea is to setup a docker-in-docker (DinD) container in the same Kubernetes pod so the DinD provides the docker functionality. This is pretty much a standard Kubernetes DinD setup nowadays.
Having DinD would allow me to write my scripts using any programing language, pack them in a docker image then run them in a N8N node. I already use this approach in Jenkins, however I would like to use N8N because I think it is more user friendly.
Just wondering if this has been attempted before.