【发布时间】:2022-12-18 07:03:41
【问题描述】:
我正在尝试使用 exec.Command 在 Go 服务器中运行一个 docker 容器。
这是我要运行的代码:
entrypoint := "/bin/bash"
run := fmt.Sprintf("docker run -a stdout -a stderr --rm %s %s %s", env, image, args)
cmd := exec.Command(entrypoint, "-c", run)
if err := cmd.Start(); err != nil {
return err
}
其中 env 是这样的:
-e KEY=VALUE
但是,我收到如下错误:
/bin/bash: docker run ... : No such file or directory
然后,我在 docker 命令的开头和结尾添加了双引号:
cmd := exec.Command(entrypoint, "-c", "\""+run+"\"")
这一次,我可以在我的 Zsh 终端中运行命令/bin/bash -c "docker run ..."。但是 Go 仍然会抛出相同的错误。
我应该怎么办?
【问题讨论】: