当前位置: 首页 > 面试题库 >

如何为在Docker容器中运行的.NET Core Web API服务提供应用程序配置?

松建本
2023-03-14
问题内容

我正在使用Docker部署我的ASP.NET Core Web
API微服务,并且正在寻找将配置注入到每个容器中的选项。在应用程序根目录中使用appsettings.json文件的标准方法并不理想,因为据我所知,这意味着将文件构建到我的docker映像中,这将限制该映像可以在哪个环境中运行。

我想一次构建一个映像,可以在运行时为它们提供配置,并在整个开发过程中进行测试,测试UAT并进入生产环境,而无需为每个环境创建映像。

选项似乎是:

  1. 通过环境变量提供配置。似乎有点乏味。
  2. 以某种方式将容器中的路径映射到appsettings.json所在的主机服务器上的标准位置,并获取该服务(如何?)
  3. 可能可以在docker run命令行上提供值吗?

有人对此有经验吗?您能否提供代码示例/方向,尤其是在选项2)上,这似乎是目前最好的?


问题答案:

我们现在正在使用其他打包系统(不是docker本身),但是仍然存在相同的问题-包可以部署在任何环境中。

因此,我们现在的做法是:

  1. 使用外部配置管理系统按环境保留和管理配置
  2. 向我们的程序包中注入基本环境变量,以保存配置管理系统的连接详细信息

这样,我们不仅允许程序包在几乎任何“已知”环境中运行,而且还允许运行时配置管理。

运行docker时,可以使用run命令的环境变量选项:

$ docker run -e“ deep =紫色” …



 类似资料:
  • 我已在单独的Weblogic域中成功配置了SAML 2.0身份提供程序 我们在另一个域的Weblogic中部署了一个ADF应用程序,该应用程序具有非SAML基于表单的身份验证(ReadOnlySQLAuthenticator用于验证凭据) 我想将第二个域配置为服务提供者(以使现有应用程序能够使用身份提供者登录)。 我做了以下工作: 配置SAML 2.0 Identity Asserter 在服务器

  • 我在azure中有一个运行docker容器的应用程序服务。 日志显示它正在使用下面的docker run命令运行。我隐藏了一些私人公司的价值观。 docker run-d-p 4040:443--name hidden-e WEBSITE\u SITE\u name=hidden-e WEBSITE\u AUTH\u ENABLED=False-e PORT=443-e WEBSITE\u ROL

  • 我正在测试一些与比特币相关的代码,为了测试它,我在docker容器中安装了比特币测试网盒。 我使用这个指南:https://registry.hub.docker.com/u/freewil/bitcoin-testnet-box/ 我没有任何问题地拉和运行码头工人。 但是,我无法编辑其目录中的bitcoin.conf文件,因为我没有安装像NANO这样的编辑器。 我想: 但它不起作用。我该怎么解决

  • 我在集群环境中的docker容器中运行了大量java和python服务。我使用Eureka进行服务发现,它在本地运行良好,在应用程序配置文件中硬编码了Eureka ip地址。我对Eureka service for Java services的灵活配置有问题—带有这些服务的docker容器将部署在三个环境中,其中Eureka将具有不同的ip地址。是否有一种方法可以使用例如JVM环境变量传递Eure

  • 我使用的是Spring Boot 1.5.13、Spring Security 4.2.6和Spring Security oAuth2 2.0.15。 我想为我们的Spring Boot应用程序找到一个最佳实践设置,该应用程序提供一组混合内容:一个REST API,一些web页面为开发人员提供一个方便的“登陆页”,上面有一些链接,加上基于Swagger的API文档,这也是web内容。 我的配置允

  • Dockerfile文件 docker撰写。yml 我发射的命令是为了让这个起来 docker-compose-fdocker-compose.yml 之后我去了https://localhost:3000这个项目没有加载。这是可复制的回购协议https://github.com/reyanshmishra/My-Portfolio-ReactJS 谢啦