我正在尝试使用to远程部署一个raspberrypi容器。下面的代码是原始代码的简化片段。
command := "docker -H ssh://pi@raspberrypi.local compose -f /tmp/code/docker-compose.yml up -d"
parsedCommand := parseCommand(command)
fmt.Println(command)
cmd := exec.Command(parsedCommand[0], parsedCommand[1:]...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
if err != nil {
fmt.Println(err)
}
我已经有一个ssh键来建立这个连接,如果我手动运行命令行,它工作得很好,但运行Go我得到了这个错误:
docker -H ssh://pi@raspberrypi.local compose -f /tmp/code/docker-compose.yml up -d
error during connect: Get "http://docker.example.com/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Djanus%22%3Atrue%7D%7D": ssh resolves to executable in current directory (./ssh)
exit status 1
1条答案
按热度按时间tgabmvqs1#
经过几次测试,我自己才找到了答案。
错误消息对此不是很清楚,但是我们需要将操作系统环境变量传递给使用
cmd.Env = os.Environ()
创建的exec.cmd下面是完整的代码示例: