Every script task using the Docker runner in Kestra failed: the script file (e.g. main.py from inputFiles) wasnt accessible inside the runner container. It happened on Windows with WSL2, on Docker Desktop, and on a Linux Docker Swarm setup, so it wasnt Windows-specific. The Kestra team reproduced it: the Docker runner couldnt create the input files in the temp working directory because the tmp path wasnt aligned between Kestra and the runner container.
Kestra: every script execution fails with Docker runner (script file not accessible)
The Docker runner mounts a shared volume for the working directory, so the temp path has to be identical on the Kestra side and the runner side. If you customize it, mount the same host directory into the Kestra container at the same path and tell Kestra to use it:
services:
app:
volumes:
- /mnt/storage-pool/appdata/kestra/tmp/kestra-wd:/mnt/storage-pool/appdata/kestra/tmp/kestra-wd
- /var/run/docker.sock:/var/run/docker.sock
environment:
KESTRA_CONFIGURATION: |
kestra:
tasks:
tmp-dir:
path: /mnt/storage-pool/appdata/kestra/tmp/kestra-wd/tmpTwo reporters confirmed this config fixed it ("This works on ubuntu/swarm", "with tmp path like in your example it works"). Create the host directories beforehand with mkdir -p, or youll get a bind mount error instead.
Source: https://github.com/kestra-io/kestra/issues/3590
Source: https://github.com/kestra-io/kestra/issues/3590