Если я захожу на свой удаленный Mac с помощью ssh -p22 jenkins@192.168.2.220
и набираю docker
, он находит исполняемый файл, потому что он также находит путь /usr/local/bin
, если я проверяю с помощью echo $PATH
.Но если я сделаю то же самое в heredoc внутри файла setup-mac.sh
, например
#!/bin/bash
ssh jenkins@192.168.2.220 '/bin/bash -s' << 'EOF'
"echo $PATH"
"bash run-docker.sh"
EOF
, который я выполняю через оболочку и bash setup-mac.sh
, он не находит /usr/local/bin
в PATH
и, следовательно, не запускаетсяdocker, потому что команда неизвестна.
На удаленном Mac есть файл run-docker.sh
, который является файлом bash, который вызывает команды docker, и он работает, если вызывается локально.
Комурешить эту проблему, я включил PermitUserEnvironment
на Mac в sshd_config
, но это не сработало.Хотя я только перезапустил службу ssh, а не всю машину.Тем временем я изменил все команды docker на удаленном скрипте run-docker.sh
на псевдоним ${DOCKER}
и инициализировал его в начале скрипта на DOCKER=/usr/local/bin/docker
, но это только обходной путь.