Библиотека для работы с окружением контейнера.
$ dotnet add package EBCEYS.ContainersEnvironmentБиблиотека для удобной работы сервисов внутри docker контейнера.
public class ServiceEnvironmentVariable<T> используется для доступа к переменным окружения.
public static class DefaultEnvironmentVariables содержит внутри себя инстансы переменных окружения общих для контейнеров.
public interface IEnvironmentConverter интерфейс описывающий методы для конвертации переменной окружения в нужный тип.
Создано для работы с сервисом конфигурации.
public class ConfigurationFileInfo - объект, возвращаемым сервисом, содержащий информацию о конфигурации контейнера.
public static class ConfigurationEnvironment - статический класс, содержащий переменные окружения для конфигурации.
Для добавления HealthCheck-ов в сервис используются экстеншон методы:
public static IServiceCollection ConfigureHealthChecks(this IServiceCollection sc) - добавляет HealthCheck в сервис и PingServiceHealthStatusInfo как singleton, чтобы его можно было использовать далее в сервисах.public static IApplicationBuilder ConfigureHealthChecks(this IApplicationBuilder app, int port) на IApplicationBuilder.Добавляет поддержку переменной окружения HEALTHCHECKS_ENABLE=bool, которая включает и выключает HealthChecks. По умолчанию true.
Добавляет поддержку переменной окружения HEALTHCHECKS_STARTING_PORT=int, в которой указывается порт запуска HealthCheck-ов. По умолчанию 8080.
Routes:
/// <summary>
/// The ping route.
/// </summary>
public const string PingRoute = "/ping";
/// <summary>
/// The healthz route.
/// </summary>
public const string HealthzRoute = "/healthz";
/// <summary>
/// The healthz status route.
/// </summary>
public const string HealthzStatusRoute = "/healthz/status";
public class ConfigurationFileInfo(string serverFileFullPath, DateTimeOffset lastWriteUTC, string containerTypeName, string fileSaveFullPath), служащий для передачи информации о файле конфигурации от сервера.public class ContainerLabelInfo<T> для работы с labels контейнера.public static ContainerLabelInfo<T>? GetLabel<T>(this IDictionary<string, string> labels, string key, IEnvironmentConverter? converter = null) создающий экземпляр public class ContainerLabelInfo<T>.