从 Golang,如何 build/run 一个 docker-compose 项目?

From Golang, how to build/run a docker-compose project?

我想运行docker-compose来自Golang的项目使用docker包 通过提供 docker-compose.yml 文件。

效仿 https://docs.docker.com/engine/api/sdk/examples/ 中的示例 我知道如何使用 Golang 创建和 运行 单独的容器,但是有没有办法从 Golang docker 库中 运行 docker-compose 项目?

我知道我可以做这样的事情

import "os/exec"
exec.Command("docker-compose","up")

但我希望这种情况发生在 docker 包中。

我是一个完全的 Go 菜鸟,所以对此持保留态度,但我正在查看命令使用的 up command - they use Cobra for their cli tooling (which seems quite common), and Viper for argument parsing. The link provided is to the Cobra command implementation, which is different from the up internals 的 Docker compose 实现。

如果您想要添加一个命令来调用 docker compose“up”命令作为您的 golang 命令的一部分(这就是我认为您想要的 - 这就是我想要的想尝试做),我认为你必须接受这样一个事实,即你必须基本上实现你自己的 Cobra 命令版本,复制他们现有的逻辑。那是我的看法。