我正在使用oryd/hydra docker镜像:https://hub.docker.com/r/oryd/hydra
为了使用我自己的配置构建自定义图片
我确实创建了一个自定义目录:

mkdir sso-demo-hydra
cd sso-demo-hydra
然后我使用该语法创建一个Dockerfile:
vi Dockerfile
文件内容:

构建图像时我没有错误:

当我启动该应用程序时,收到以下警告:

PS:上下文目录中有一个.hydra文件
谢谢你的支持。

最佳答案

请参见此docker镜像的github source code,相关代码如下:

func initConfig() {
    if cfgFile != "" {
        // enable ability to specify config file via flag
        viper.SetConfigFile(cfgFile)
    } else {
        path := absPathify("$HOME")
        if _, err := os.Stat(filepath.Join(path, ".hydra.yml")); err != nil {
            _, _ = os.Create(filepath.Join(path, ".hydra.yml"))
        }

        viper.SetConfigType("yaml")
        viper.SetConfigName(".hydra") // name of config file (without extension)
        viper.AddConfigPath("$HOME")  // adding home directory as first search path
    }

    viper.SetDefault("LOG_LEVEL", "info")

    viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
    viper.AutomaticEnv() // read in environment variables that match

    // If a config file is found, read it in.
    if err := viper.ReadInConfig(); err != nil {
        fmt.Printf(`Config file not found because "%s"`, err)
        fmt.Println("")
    }
}

从上面可以看到,实际上期望的是.hydra.yml,而不是.hydra.hydra只是删除扩展名的那个:



因此,根本原因是:它的错误指示不友好,这使您遇到问题,更改为使用.hydra.yml可以使其正常。

关于docker - 如何将配置文件推送到新的oryd/hydra docker镜像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57559268/

10-15 23:51