我们在 Visual Studio (2017) 中有一个 .NET Core 项目,添加了 Docker 支持。我们的项目依赖环境变量在启动时自行配置。据我们了解,为了将环境变量值传递给容器,您可以使用
docker run
将它们指定为 -e
命令的参数。
当您通过选择 Docker 配置文件从 Visual Studio 运行项目的容器化版本时,我们注意到 Visual Studio 执行
docker run
命令。但是,我们无法弄清楚如何让 Visual Studio 在运行容器时包含我们的环境变量值。
有没有办法告诉 Visual Studio 将我们的环境变量值传递给它运行的容器?
请注意,我们不想在映像中指定环境变量值,因为这些值会根据部署到的位置而变化。
您可以通过将以下属性添加到 .csproj 文件来选择包含要传递给
docker run
命令的其他环境文件:
<DockerfileRunEnvironmentFiles>your_env_file.env</DockerfileRunEnvironmentFiles>
如果你的 env 变量不经常改变,你也可以将它们放在 Docker 文件中,在镜像构建过程中,env 变量会被分配给容器
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
ENV ASPNETCORE_ENVIRONMENT=dev
我能够在 Visual Studio 中右键单击我的项目,然后转到“添加 => 容器编排”。这添加了一个 docker-compose.yml 文件和一个 docker-compose.override.yml 文件。在覆盖文件中,我可以添加一个没有值的环境变量。它从您的系统或用户环境变量中选择值。这使我能够传递在窗口中设置的变量,而无需在其他地方再次添加它们。