如何解决如何将多个环境变量传递给 docker 容器?
我是第一次与 docker 合作,我正在努力解决所有问题。
在与我合作的这个项目中,我们广泛使用了 Windows 环境变量以在我们的启动文件中使用。并将这些放在我们的配置中,我们使用 AddEnvironmentVariables(string prefix) 方法,如下所示:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(builder =>
{
builder.AddEnvironmentVariables(prefix: "MICROSVC_")
.AddJsonFile("appsettings.json");
})
.UseStartup<Startup>();
在 localhost 和 Azure 中这没有问题,因为我们已将它们添加到这些环境中。但是我无法弄清楚如何在我的 docker 容器中配置这些环境变量。我已经看到你可以在运行命令中使用 -e 来完成,但那样传递的变量太多了。
解决方法
有多种方法。看看Environment variables in Compose。
这里有四个来自这个来源。
Compose file
Shell environment variables
Environment file
Dockerfile
This SO Q&A 还提供了一些在运行容器中设置环境变量的建议。
,正如 Kit 所回答的,有很多方法可以设置 Docker 容器的部署(例如 docker-compose
或 kubernetes
),但是如果您想使用命令行启动单个容器,您可以重复-e
参数以传递多个环境变量。
docker run -it -e VAR_A=12 -e VAR_B=13 alpine sh
其中 alpine
容器映像和 sh
要在此容器中以交互方式启动的外壳 (-it
)。
在这个启动的容器中,您可以输入 set
并看到两个变量 VAR_A
和 VAR_B
已定义和设置。
您可以通过输入 exit
命令离开启动的容器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。