【发布时间】:2019-04-29 18:54:42
【问题描述】:
如果我通过ssh -p22 jenkins@192.168.2.220 登录到我的远程Mac 并键入docker,它会找到可执行文件,因为如果我检查echo $PATH,它还会找到路径/usr/local/bin。但是如果我在文件setup-mac.sh 中的heredoc 中做同样的事情,比如
#!/bin/bash
ssh jenkins@192.168.2.220 '/bin/bash -s' << 'EOF'
"echo $PATH"
"bash run-docker.sh"
EOF
我通过 shell 和bash setup-mac.sh 执行它在PATH 中找不到/usr/local/bin,因此不会运行 docker,因为该命令是未知的。
在远程Mac上有一个文件run-docker.sh,它是一个调用docker命令的bash文件,如果在本地调用它就可以工作。
为了解决这个问题,我在sshd_config 的mac 上启用了PermitUserEnvironment,但这不起作用。虽然我只重启了 ssh 服务而不是整台机器。同时,我已将远程run-docker.sh 脚本上的所有 docker 命令更改为别名${DOCKER},并在脚本开头将其初始化为DOCKER=/usr/local/bin/docker,但这只是一种解决方法。
【问题讨论】:
-
run-docker.sh 文件的完整路径是什么?
-
docker-run.sh文件位于/Users/jenkins/Desktop/winlin/ubuntu。