Spring boot Docker:如何在运行Docker日志时打印jvm内存信息
我有一个基于java spring的启动应用程序,运行在Docker上 在我的dockerfile中,我使用的是入口点 显然,我是这样使用的:Spring boot Docker:如何在运行Docker日志时打印jvm内存信息,spring-boot,docker,docker-compose,dockerfile,docker-image,Spring Boot,Docker,Docker Compose,Dockerfile,Docker Image,我有一个基于java spring的启动应用程序,运行在Docker上 在我的dockerfile中,我使用的是入口点 显然,我是这样使用的: ENTRYPOINT ["java","-Dfile.encoding=utf-8", "-XX:+ExitOnOutOfMemoryError","-Xms256m","-Xmx256m", "-XshowSettings:vm","-jar","/opt/myapp.jar", "--spring.profiles.active=server"]
ENTRYPOINT ["java","-Dfile.encoding=utf-8", "-XX:+ExitOnOutOfMemoryError","-Xms256m","-Xmx256m", "-XshowSettings:vm","-jar","/opt/myapp.jar", "--spring.profiles.active=server"]
与此类似,当容器启动时:它在运行docker日志时显示这些值:
VM settings:
Min. Heap Size: 256.00M
Max. Heap Size: 256.00M
Ergonomics Machine Class: client
Using VM: OpenJDK 64-Bit Server VM
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.0.RELEASE)
但是通过对入口点格式进行一点转换(注入一些en变量):
隐藏jvm值,并仅显示spring图表:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.2.RELEASE)
如何让它再次出现???JVM
选项和参数的顺序很重要。用途是:
java [options] -jar <jarfile> [args...]
(to execute a jar file)
使用以下命令运行它:
docker run -e XMX_VALUE=256M -e XMS_VALUE=256m <image_name>
docker run-e XMX_值=256M-e XMS_值=256M
还有一个问题,我发现初始堆大小无效:-Xms=256m;;你有什么事吗?@firasKoubaa应该是-Xms256m。删除入口点中的=
ENTRYPOINT java -Dfile.encoding=utf-8 -XX:+ExitOnOutOfMemoryError \
-Xms${XMS_VALUE} -Xmx${XMX_VALUE} \
-XshowSettings:vm -XX:+PrintFlagsFinal -XshowSettings:vm \
-jar /opt/myapp.jar --spring.profiles.active=server
docker run -e XMX_VALUE=256M -e XMS_VALUE=256m <image_name>