Я пытаюсь использовать docker и docker-compose для создания набора контейнеров с некоторыми настроенными параметрами с использованием переменных среды - например, я хочу смонтировать каталог в определенном месте в контейнере,Это конкретное расположение хранится в переменной окружения и создается в Dockerfile с помощью такой команды:
RUN mkdir $custom_location
Я сохраняю параметры в файле .env, который заполняет файл docker-compose.
Когда контейнеры запущены, с помощью команды printenv
я вижу, что передача переменных env сработала, и я могу вручную запустить команду mkdir $custom_location
, но команда не была успешной во время процесса сборки dockerfile.
Сводная версия Dockerfile выглядит следующим образом:
FROM python:3.6.5 as my_base
ENV CUSTOM_PATH=$CUSTOM_PATH
RUN mkdir $CUSTOM_PATH
Сводная версия docker-compose.yml выглядит следующим образом:
service:
environment:
- CUSTOM_PATH=${CUSTOM_PATH}
build: ./Docker
Ошибка Iполучаю вот так:
Шаг 20/20: ЗАПУСК mkdir $ CUSTOM_PATH ---> Запуск в 437aa3f09dbb mkdir: отсутствует операнд Попробуйте «mkdir --help» для получения дополнительной информации.Команда '/ bin / sh -c mkdir $ CUSTOM_PATH' вернула ненулевой код: 1
Почему это так?
Переменные ENV успешно находятся в работающем контейнере,Используя printenv
я их вижу.