在Go app中捕获docker容器的环境变量

时间:2018-04-02 19:19:20

标签: docker go environment-variables

我想在Golang应用程序的docker中创建一个图像。我编译了应用程序并在其上创建了图像,并且它按预期工作。 但是,该应用程序需要某些参数:数据库名称,用户,数据库服务器的IP等等...... 所以,我知道在docker中我可以使用标志-e将环境变量发送到容器,所以我的问题是:

如何在Golang应用程序中捕获这些值?

1 个答案:

答案 0 :(得分:3)

您可以使用https://golang.org/pkg/os/#Getenvhttps://golang.org/pkg/os/#LookupEnv从环境变量中获取值。我更喜欢使用os.LookupEnv,因为我得到一个布尔表示变量有一个值,然后我有自己的方法来获得默认值。

func getEnv(key string, defaultValue string) string {
    if value, ok := os.LookupEnv(key); ok {
        return value
    }

    return defaultValue
}