卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章35201本站已运行394

如何调试docker-compose?配置路径在哪里设置?

如何调试docker-compose?配置路径在哪里设置?

php小编新一将为您介绍如何调试docker-compose以及如何设置配置路径。调试docker-compose是解决容器化应用程序问题的重要步骤,它可以帮助开发者找出错误并进行修复。要调试docker-compose,首先需要检查docker-compose.yml文件中的语法错误和拼写错误。如果文件无误,可以使用命令`docker-compose config`来验证配置文件的正确性。配置路径通常在docker-compose.yml文件中设置,可以使用`volumes`关键字来指定容器和主机之间的共享路径。在配置路径时,还需要注意主机上的路径是否存在,以确保容器能够正确访问所需的文件。通过以上方法,您就可以轻松调试docker-compose并设置配置路径了。

问题内容

我正在尝试调试 docker-compose,即这个 Go 文件,以解决某些问题(这个)。为此,我设置了一个 GoLang 调试器

go run main.go -f /.../project_root/docker-compose.yml -f /.../project_root/folder1/docker-compose.yml config 的输出符合预期,合并的配置文件.

由于某种原因,我找不到代码中设置的配置文件,尽管它们必须设置在某个地方,因为输出是正确合并的配置文件。我怀疑它们一定就设置在这附近或这里的某个地方。但在前一个地方,cli.configFile 的值为 nil,而在后一个地方,o.ConfigPaths 的值为 nil

所以我有两个问题:

  1. 配置文件在哪里设置?和
  2. (如果无法回答 1)我在尝试模拟实际 docker-compose 命令的行为时做错了什么?

编辑

根据上述问题并找到可能设置配置路径的位置,我现在的问题是设置卷路径的位置。

解决方法

哪些配置路径?默认配置文件(docker-compose.yaml)的路径由 cli.withdefaultconfigpath 方法设置(在 compose-go 存储库)。默认配置的可能名称在 此处设置一>:

// defaultfilenames defines the compose file names for auto-discovery (in order of preference)
var defaultfilenames = []string{"compose.yaml", "compose.yml", "docker-compose.yml", "docker-compose.yaml"}

withdefaultconfigpath 方法会迭代此列表,如果找到匹配的文件,则会将其应用于 projectoptions 结构中的 configpaths 字段,此处:

type projectoptions struct {
    projectname   string
    profiles      []string
    configpaths   []string
    workdir       string
    projectdir    string
    envfile       string
    compatibility bool
}

withdefaultconfigpath方法应用在toprojectoptions方法中,此处:

func (o *ProjectOptions) toProjectOptions(po ...cli.ProjectOptionsFn) (*cli.ProjectOptions, error) {
    return cli.NewProjectOptions(o.ConfigPaths,
        append(po,
            cli.WithWorkingDirectory(o.ProjectDir),
            cli.WithOsEnv,
            cli.WithEnvFile(o.EnvFile),
            cli.WithDotEnv,
            cli.WithConfigFileEnv,
            cli.WithDefaultConfigPath,
            cli.WithName(o.ProjectName))...)
}
卓越飞翔博客
上一篇: 将类型定义为泛型类型实例化
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏