我如何提供应用程序configuration到我的在Docker容器中运行的.NET Core Web API服务?
我正在使用Docker来部署我的ASP.NET Core Web API微服务,并且正在查看将configuration注入到每个容器的选项。 在应用程序根目录中使用appsettings.json文件的标准方式并不理想,因为就我所见,这意味着将文件构build到我的泊坞窗图像中,这会限制图像可以运行的环境。
我想要构build一个图像,在运行时可以提供configuration,并通过开发工具,testingUAT进入生产环境,而无需为每个环境创build图像。
选项似乎是:
- 通过环境variables提供configuration。 似乎有点乏味。
- 以某种方式将容器中的path映射到appsettings.json所在的主机服务器上的标准位置,然后让服务select它(如何操作)?
- 可以在docker运行命令行上提供值吗?
有人对此有经验吗? 你能提供代码示例/方向,特别是关于选项2),这似乎是目前最好的?
我们现在正在使用其他的包装系统(不是docker本身),但仍然有相同的问题 – 包可以在任何环境中部署。
所以,现在我们正在这样做:
- 使用外部configurationpipe理系统来保存和pipe理每个环境的configuration
- 注入我们的软件包的基本环境variables来保存configurationpipe理系统的连接细节
这样,我们不仅允许程序包在几乎任何“已知”环境中运行,而且还运行时configurationpipe理。
在运行docker时,可以使用run命令的环境variables选项 :
$ docker run -e“deep = purple”…
可以在Docker镜像/容器中创build数据卷。 还要将主机目录挂载到容器中。 主机目录可以在容器内访问。
添加数据量
您可以使用docker create和docker run命令使用-v标志将数据卷添加到容器。
$ docker run -d -P --name web -v /webapp training/webapp python app.py
这将在/ webapp的容器内创build一个新卷。
将主机目录挂载为数据卷
除了使用-v标志创build卷之外,还可以将Docker引擎主机的目录挂载到容器中。
$ docker run -d -P --name web -v /src/webapp:/webapp training/webapp python app.py
该命令将主机目录/ src / webapp安装到/ webapp的容器中。
请参阅Docker数据卷
- 使用Docker中的dotnet为Visual Studio C#扩展(OmniSharp)
- 在Docker-image microsoft / aspnetcore-build:1.1.0-msbuild中构buildASP.NET Core 1.1 preview4项目
- 如何使用Docker和dotnet watch来设置ASP.NET核心2.0
- RUN命令不能访问卷
- 为什么这个dotnettesting只在Docker容器中运行崩溃?
- 如何从Visual Studio Mac的容器中debugging多个dot.net核心服务
- 在定义的端口上运行RC2项目
- docker容器即使在.net核心控制台应用程序中使用Console.ReadLine()也会立即退出
- 授权使用docker时,不能使用identityserver4