entrypoint.sh записывается при построении образа, поэтому оператор RUN
не будет выполнен снова при запуске контейнера. Таким образом, сам файл entrypoint.sh не будет обновлен.
Другая проблема заключается в том, что при запуске docker параметры -e должны находиться перед именем образа и командой:
docker run -it -e "APP_OPTS=-Xmx9144m" -e "SPRING_ENV=dev" <image_id> sh
В противном случае они просто передаются в качестве аргументов точке входа / команде
Кроме того, в вашем Dockerfile вы, вероятно, захотите использовать одинарные кавычки вокруг скрипта точки входа, чтобы он не интерполировал значения во время сборки.
RUN echo '/usr/lib/jvm/java-1.8-openjdk/bin/java ${APP_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /apps/demo/demo-fe.jar --spring.config.location=file:///apps/demo/conf/ump.properties -Dspring.profiles.active=${SPRING_ENV} &' > /apps/demo/entrypoint.sh
Затем при запуске контейнера сценарий точки входа должен прочитать значения переменных во время выполнения из среды.