Как настроить конфигурации точки доступа JVM для приложения Spring Boot при работе внутри докера?

Я использую Dockerfile для передачи конфигурации JVM следующим образом.

FROM openjdk:11
COPY build/libs/api.jar /app/
EXPOSE 8080
ENTRYPOINT ["java", "-Xms256m", "-Xmx256m", "-jar", "app/api.jar"]

После сборки и запуска контейнера я перехожу к bash внутри контейнера и выполняю команду java -XX:+PrintFlagsFinal -version | grep MaxHeapSize, чтобы проверить, правильно ли он настроен. Но переданные конфигурации (максимальный размер кучи 256 МБ) добавляются неправильно. Что я здесь делаю не так? Я также пробовал устанавливать переменные среды. Все тот же результат


person Sidath Asiri    schedule 19.08.2020    source источник
comment
Попробуйте CMD вместо ENTRYPOINT   -  person Rahul Agrawal    schedule 19.08.2020
comment
По-прежнему без изменений. Он показывает 4 ГБ, что составляет 1/4 моей общей памяти   -  person Sidath Asiri    schedule 19.08.2020
comment
java -XX:+PrintFlagsFinal запускает новый процесс Java, не связанный с командой, указанной в ENTRYPOINT или CMD   -  person apangin    schedule 19.08.2020
comment
Вместо этого используйте jcmd <pid> VM.flags или jcmd <pid> GC.heap_info   -  person apangin    schedule 19.08.2020
comment
Вместо использования параметров Xms и Xms, вероятно, лучше позволить JVM изменять размер кучи на основе доступной памяти в контейнере: stackoverflow.com/questions/54516988/   -  person Erik Finnman    schedule 27.08.2020