如何为每个客户创建具有不同设置的Docker映像? 设置存储在appseetings.json文件中
我正在使用GitLab for CI(我创建了docker映像) 我正在使用Azure for CD(Web应用程序容器服务) 我有两个必须为每个客户部署的项目。 (身份验证服务和WebApi服务) 我为客户提供了不同的设置,例如smtp服务器,身份验证端点等(正是我想以不同方式注入的这些东西)
首先要为每个客户创建不同的图像,但是在谷歌搜索之后,我显然会很头疼。
我已经看到了很多有关环境变量的信息,但是它们与阶段,生产等模式有关,并且认为不适合我的情况。
另一件事是我必须将设置存储在某个位置(以我的情况存储在Azure上)。
任何情况下都使用https://docs.docker.com/compose/environment-variables/ 但是它将创建少量docker映像
我希望创建一个具有不同设置的docker映像,但是无法理解实现该映像的正确方法。 谢谢
答案 0 :(得分:1)
实际上,环境变量非常适合您的情况。如果您这样加载它们:
https:"YOUR URL"/?searchCriteria[filter_groups][0][filters][0][field]=name&searchCriteria[filter_groups][0][filters][0][value]=<b>\(txtFldSearch.text!)</b>&searchCriteria[filter_groups][0][filters][0][condition_type]=like
它将覆盖您的appsettings.json设置。在Azure上,可以在容器设置中更改它。如果您手动运行docker,则可以通过cli:var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true)
.AddEnvironmentVariables();
var config = builder.Build();
//...
var smptUrl = config.GetValue<string>("smtpUrl");
对其进行更改。在上述情况下,可能是:docker run -e VARIABLE=VALUE
以下是如何在Azure上为docker容器设置它的方法: https://docs.microsoft.com/en-us/azure/container-instances/container-instances-environment-variables