【问题标题】:From Golang, how to build/run a docker-compose project?从 Golang,如何构建/运行 docker-compose 项目?
【发布时间】:2021-10-02 01:35:27
【问题描述】:

我想通过提供 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 包中。

【问题讨论】:

  • 感谢@Chandan,libcompose 似乎不再维护,但 compose-go 看起来很有希望。不幸的是,我找不到任何有关如何使用 compose-go 的示例,您能否提供一个“入门”示例?

标签: docker go docker-compose dockerfile moby


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 2016-05-08
    • 2021-12-06
    • 2020-08-06
    • 2023-04-06
    • 1970-01-01
    • 2019-07-26
    相关资源
    最近更新 更多