Как определить значение окружения с помощью: в названии в docker compose? - PullRequest
0 голосов
/ 20 октября 2018

Я хотел бы передать переменную среды с именем ABC:DEF в контейнер, определенный в docker-compose.yml.

Как это сделать?

Если я напишу в определении службы

environment:
    ABC:DEF: ${ABC:DEF}

Я получил

ERROR: Invalid interpolation format for "environment" option in service: "${ABC:DEF}"

Редактировать: Цель этого вопроса - понять, возможно ли использовать имена переменных среды, которые содержат :двоеточие и как правильно определить это в docker-compose.yml.Обсуждение того, каковы альтернативы использованию : двоеточия с точки зрения «вещи», бегущей внутри затронутого контейнера, не является частью вопроса.

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Существуют различные способы определения переменных среды в docker compose, как указано ниже

  1. Определите его в файле compose и передайте значение через оболочку

enter image description here

    $ export TAG=v1.0

    $ docker-compose up -d

Вы можете установить переменные env при запуске docker-compose

docker-compose run -e TAG = v2.0

Вы можете передать внешнюю переменнуюфайл в файле составления

enter image description here

Вы можете определить значения по умолчанию в файле .env

enter image description here

Когда вы устанавливаете одну и ту же переменную среды в нескольких файлах, вотПриоритет, используемый Compose для выбора используемого значения:

  1. Файл составления
  2. Переменные среды оболочки
  3. Файл среды
  4. Dockerfile
  5. Переменная не определена
0 голосов
/ 20 октября 2018

Используя следующую строку вместо ABC:DEF: ${ABC:DEF}:

environment:
  POSTGRES_PASSWORD: any-password 

[ ОБНОВЛЕНИЕ ]:

Если : невозможнодля использования в переменных среды вашей системы замените: __ (двойное подчеркивание).

Configuration_in _ASP.NET _Core_Reference

Так что я думаю, чтобыло бы что-то вроде этого:

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