4

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

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

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

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

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

4

1 回答 1

1

我是一个完整的 Go 菜鸟,所以对此持保留态度,但我正在查看他们up命令的 Docker compose 实现- 他们使用 Cobra 作为他们的 cli 工具(这似乎很常见),并使用 Viper 进行参数解析. 提供的链接指向 Cobra 命令实现,它与命令使用的up internals不同。

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

于 2022-02-27T20:21:07.317 回答