Почему при проверке env
для создаваемого мной изображения я получаю переменные среды изображения в списке, как и ожидалось, но когда я пытаюсь получить доступ к одной из этих переменных env (например, $ PATH), я получаю вместо этого на моем локальном компьютере выводится переменная окружения?
Мне кажется, я неправильно понимаю, как работают docker переменные окружения. Я пытаюсь выполнить некоторые команды для docker контейнера и вижу то, что считаю неожиданным поведением. Я создал простой пример для демонстрации.
Dockerfile:
FROM node:12.13.0
ENV PATH="${PATH}:/custom-path/goes-here"
Команды:
docker build . -tag env-test
docker run env-test /bin/bash -c "env"
docker run env-test /bin/bash -c "$PATH"
Ожидаемый результат от двух последних команд.
docker run env-test /bin/bash -c "env".
...
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/custom-path/goes-here
...
docker run evn-test /bin/bash -c "echo $PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/custom-path/goes-here
Фактический вывод из двух последних команд
docker run env-test /bin/bash -c "env".
...
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/custom-path/goes-here
...
docker run evn-test /bin/bash -c "echo $PATH"
/Users/local-machine-user/Downloads/google-cloud-sdk/bin:/Users/local-machine-user/.nvm/versions/node/v12.16.1/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/local-machine-user/Downloads/google-cloud-sdk/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin
Результат выполнения echo $PATH
для созданного образа возвращает переменную $ PATH моей локальной машины. Какая?
Основная вещь, которую я пытаюсь сделать, - это выполнить сценарий для образа docker, для которого требуются те переменные среды, которые я установил в образе, но сценарий завершается ошибкой, поскольку переменные среды, которые использует сценарий, в конечном итоге оказываются для моей локальной машины, а не те, которые указаны на изображении.