在 Visual Studio 中运行时将环境变量传递给 Docker 容器

问题描述 投票:0回答:4

我们在 Visual Studio (2017) 中有一个 .NET Core 项目,添加了 Docker 支持。我们的项目依赖环境变量在启动时自行配置。据我们了解,为了将环境变量值传递给容器,您可以使用

docker run
将它们指定为
-e
命令的参数。

当您通过选择 Docker 配置文件从 Visual Studio 运行项目的容器化版本时,我们注意到 Visual Studio 执行

docker run
命令。但是,我们无法弄清楚如何让 Visual Studio 在运行容器时包含我们的环境变量值。

有没有办法告诉 Visual Studio 将我们的环境变量值传递给它运行的容器?

请注意,我们不想在映像中指定环境变量值,因为这些值会根据部署到的位置而变化。

visual-studio docker environment-variables docker-container
4个回答
17
投票

您可以通过将以下属性添加到 .csproj 文件来选择包含要传递给

docker run
命令的其他环境文件:

<DockerfileRunEnvironmentFiles>your_env_file.env</DockerfileRunEnvironmentFiles>

2
投票

我有一个命令行 .NET Core 应用程序,它使用输入参数中的秘密,例如

mycli -ACCOUNT_KEY abcdef123=
。出于调试目的,我不想在源代码控制中包含此值,因此我将其设置为系统上的环境变量,然后将其传递到命令行参数中。这就是我所做的:

系统环境变量中:

在项目设置中:

在 .csproj 文件中:

在.gitignore中:


0
投票

如果你的 env 变量不经常改变,你也可以将它们放在 Docker 文件中,在镜像构建过程中,env 变量会被分配给容器

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80

ENV ASPNETCORE_ENVIRONMENT=dev

0
投票

我能够在 Visual Studio 中右键单击我的项目,然后转到“添加 => 容器编排”。这添加了一个 docker-compose.yml 文件和一个 docker-compose.override.yml 文件。在覆盖文件中,我可以添加一个没有值的环境变量。它从您的系统或用户环境变量中选择值。这使我能够传递在窗口中设置的变量,而无需在其他地方再次添加它们。

© www.soinside.com 2019 - 2024. All rights reserved.