If I log in to my remote Mac via ssh -p22 jenkins@192.168.2.220
and type docker
, it finds the executable because it also finds the path /usr/local/bin
if I check with echo $PATH
. But if I do the same in a heredoc inside a file setup-mac.sh
like
#!/bin/bash
ssh jenkins@192.168.2.220 '/bin/bash -s' << 'EOF'
"echo $PATH"
"bash run-docker.sh"
EOF
which I execute via shell and bash setup-mac.sh
it does not find /usr/local/bin
in PATH
and consequently does not run docker, because the command is unknown.
On the remote Mac, there is a file run-docker.sh
which is a bash file that calls docker commands, and it works if called locally.
To solve this issue, I've enabled PermitUserEnvironment
on the mac in sshd_config
, but this did not work. Though I only restarted ssh service and not the whole machine. Meanwhile I've changed all docker commands on the remote run-docker.sh
script to an alias ${DOCKER}
and I initialize it at the beginning of the script to DOCKER=/usr/local/bin/docker
, but this is only a workaround.