如何在 Golang 中构建/运行 Docker Compose 项目?

6
我希望能使用 docker 包来运行 docker-compose 项目,通过提供 docker-compose.yml 文件,并使其与 Golang 相关联。
参考自 https://docs.docker.com/engine/api/sdk/examples/的例子,我已经知道如何使用 Golang 创建和运行个别容器了。但是,是否有一种方法可以从 Golang 的 docker 库中运行 docker-compose 项目呢?
我知道我可以像这样做:
import "os/exec"
exec.Command("docker-compose","up")

但我希望这个功能通过Docker软件包实现。


2
请查看compose-golibcompose - Chandan
1
谢谢@Chandan,libcompose似乎已经不再维护了,但是compose-go看起来很有前途。不幸的是,我找不到任何使用compose-go的示例,您能提供一个“入门”示例吗? - Evyatar Saias
1个回答

3
我是一个 Go 新手,所以这只是我的个人看法。我正在查看 Docker compose 实现其 up 命令的内容 - 它们使用 Cobra 进行 cli 工具编写(这似乎很常见),并使用 Viper 进行参数解析。提供的链接指向 Cobra 命令实现,它与命令使用的up internals不同。
如果您想添加一个命令作为您的 Golang 命令的一部分来调用 docker compose 的 "up" 命令(这就是我认为您要做的事情 - 这也是我想尝试做的事情),我认为您必须接受一个事实,即您必须基本上实现自己的版本Cobra命令,复制他们现有的逻辑。这是我的理解。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接