Мой Dockerfile устанавливает некоторые значения по умолчанию для переменных среды, а затем предоставляет два порта, которые должны быть предоставленными переменными среды:
FROM python:3.6.5-stretch
[ ... ]
ENV MY_SERVICE_PORT 8080
ENV MY_SERVICE_PORT_RPC 50051
[ ... ]
EXPOSE ${MY_SERVICE_PORT}
EXPOSE ${MY_SERVICE_PORT_RPC}
Мое приложение внутри контейнера правильно читает переменную среды при запуске контейнера. Если я запускаю свое изображение, используя:
docker run -e "MY_SERVICE_PORT=80" -d -t image_tag
Тогда я использую docker ps
:
0fb14e12d43d image_tag "/bin/sh -c 'python3…" 8080/tcp, 50051/tcp
Как видите, EXPOSE
использовал переменные среды времени сборки (по умолчанию 8080 и 50051). Если я выполню set
внутри контейнерного терминала, я получу:
MY_SERVICE_PORT=80
MY_SERVICE_PORT_RPC=50051
Как я могу убедиться, что для EXPOSE
установлена только переменная среды выполнения? Возможно ли это?