Различные настройки приложения для клиента в образе докера - PullRequest
0 голосов
/ 03 октября 2019

Как я могу создать образ докера с различными настройками для каждого клиента? Настройки хранятся в файле appseetings.json

Я использую GitLab для CI (там я создаю образ докера) Я использую Azure для CD (служба контейнера веб-приложения) У меня есть два отдельных проекта, которые нужно развернутьдля каждого клиента. (Служба аутентификации и служба WebApi) У меня есть разные настройки для клиента, такие как сервер smtp, конечные точки аутентификации и т. Д. (Именно эти вещи я хочу вводить по-разному)

Сначала я хотел создать разные изображения для каждого клиента, нопосле поиска в Google стало ясно, что у меня будет много головной боли, чтобы поддержать это.

Я видел много информации о переменных среды, но они относятся к таким режимам, как постановка, производство и считают, что это не подходитв моем случае.

Другое мнение заключалось в том, что мне нужно где-то хранить настройки (сохранить в Azure в моем случае).

В любом случае используется https://docs.docker.com/compose/environment-variables/ Но это создаст малоОбразы докера

Я ожидаю создать один образ докера с разными настройками, но не могу понять, как правильно это реализовать. Спасибо

1 Ответ

1 голос
/ 03 октября 2019

На самом деле переменные окружения хорошо подходят для вашего случая. Если вы загрузите их так:

var builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("appsettings.json", optional: true)
    .AddEnvironmentVariables();
var config = builder.Build();
//...
var smptUrl = config.GetValue<string>("smtpUrl");

Это переопределит ваши настройки appsettings.json. В Azure вы можете изменить это в настройках контейнера. Если вы запускаете Docker вручную, вы можете изменить его через cli: docker run -e VARIABLE=VALUE. В приведенном выше случае это может быть: docker run -e smtpUrl=smtp.customer1.com

Вот как установить его в Azure для докеров: https://docs.microsoft.com/en-us/azure/container-instances/container-instances-environment-variables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...