docker - 如何在Docker Compose中从服务器设置环境变量?

标签 docker asp.net-core docker-compose

有没有一种方法可以迫使docker compose从底层机器上假设环境变量?

背景:

我决定在我的ASP.NET Core Web应用程序中使用Docker,因此我在Visual Studio中使用了Add Docker Support选项,该选项创建了一个 .dcproj (Docker Compose项目)。

在此之前,我从当前机器(开发机器或服务器)上的环境变量中读取一些配置。

我意识到在使用docker compose项目进行调试时,我不再能够从环境变量中获取数据,这很有意义,因为docker成为了新的环境(不再是我的机器)。我不希望将这些值推送到我的git repo中。

最佳答案

您必须像这样在docker-compose.yml文件中指定环境变量

environment:
  - VAR1
  - VAR2=fixedvalue

在这种情况下,VAR1假定为您的计算机中的变量定义了值,而VAR2假定的是指定的值,无论您在计算机中配置了什么或配置了什么。

您还可以使用env_file选项,该选项可让您指定已设置所有变量的文件。
  env_file:
    - web-variables.env

您可以在documentation中找到更多信息。

关于docker - 如何在Docker Compose中从服务器设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50908325/

相关文章:

Docker RUN 持久化环境变量?

docker - 包 'cgroupfs-mount' 没有安装候选

ios-simulator - 从 iOS 模拟器访问 docker 容器

c# - 使用 WebEssentials.AspNetCore.PWA 将 PWA 集成到 .NET Web 应用程序时,serviceworker 位置错误

asp.net-mvc - 在 Asp.Net 5 中确保 SSL 的正确方法是什么

docker build 忽略存储在我的卷中的现有数据和数据库配置

docker - 当我指定文件时,"docker-compose build"向我显示帮助文本

node.js - 如何在不重启整个容器的情况下在 docker 容器上重启 Node?

asp.net-core - signalR 核心打开连接两次

docker - 如何与另一个主机Y中的主机X中正在运行的Docker容器通信(而不是与主机Y中的容器通信)