Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker容器的In-Go应用程序捕获环境变量_Docker_Go_Environment Variables - Fatal编程技术网

docker容器的In-Go应用程序捕获环境变量

docker容器的In-Go应用程序捕获环境变量,docker,go,environment-variables,Docker,Go,Environment Variables,我想在docker中创建一个Golang应用程序的映像。我编译了应用程序,并在上面创建了图像,它按预期工作。 然而,该应用程序需要某些参数:数据库名称、用户、数据库服务器的ip等。。。 因此,我知道在docker中,我可以使用标志-e将环境变量发送到容器,因此,我的问题是: 如何在Golang应用程序中捕获这些值?您可以使用或从环境变量中获取值。我更喜欢使用os.LookupEnv,因为我得到一个布尔值,表示变量有一个值,然后我有自己的方法有一个默认值 func getEnv(key strin

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

如何在Golang应用程序中捕获这些值?您可以使用或从环境变量中获取值。我更喜欢使用os.LookupEnv,因为我得到一个布尔值,表示变量有一个值,然后我有自己的方法有一个默认值

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

    return defaultValue
}
您可以使用或从环境变量中获取值。我更喜欢使用os.LookupEnv,因为我得到一个布尔值,表示变量有一个值,然后我有自己的方法有一个默认值

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

    return defaultValue
}