SpringBoot 在 Docker 容器中的 1 号进程
409 字
2 分钟
SpringBoot 在 Docker 容器中的 1 号进程
spring boot 项目配置中,配置了平滑关机,但是不生效。
查看 docker 容器中的进程,发现并不是 1 号进程
root@268bcf4264ae:/app# ps -ef | grep javaroot 1 0 0 08:35 ? 00:00:00 /bin/sh -c sh -c 'java $JAVA_OPTS org.springframework.boot.loader.JarLauncher'root 7 1 0 08:35 ? 00:00:00 sh -c java $JAVA_OPTS org.springframework.boot.loader.JarLauncherroot 8 7 8 08:35 ? 00:01:31 java -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djasypt.encryptor.password=123456 -Dspring.cloud.bootstrap.location=/config/bootstrap.yml -Dspring.jmx.enabled=false -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:+StartAttachListener -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/qnvip-loan-backend-dump.hprof -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1024k -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xms2G -Xmx2G -Xss512k -Xloggc:/logs/gc/gc.log org.springframework.boot.loader.JarLauncherroot 1438 1421 0 08:53 pts/0 00:00:00 grep --color=auto java查看 Dockerfile 中的启动命令
ENTRYPOINT sh -c 'java $JAVA_OPTS org.springframework.boot.loader.JarLauncher'google之,ENTRYPOINT 命令修改如下
ENTRYPOINT ["/bin/sh", "-c", "exec java $JAVA_OPTS org.springframework.boot.loader.JarLauncher"]构建镜像,重新启动后,再次进入容器查看 进程信息
root@8fff76975d58:/app# ps -ef | grep javaroot 1 0 37 08:57 ? 00:00:55 java -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djasypt.encryptor.password=123456 -Dspring.cloud.bootstrap.location=/config/bootstrap.yml -Dspring.jmx.enabled=false -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:+StartAttachListener -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/qnvip-loan-backend-dump.hprof -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1024k -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xms2G -Xmx2G -Xss512k -Xloggc:/logs/gc/gc.log org.springframework.boot.loader.JarLauncherroot 368 354 0 08:59 pts/0 00:00:00 grep --color=auto java已经成功变为 1 号进程
验证平滑下线
qnvip-loan-backend | 2023-09-06 09:07:19.389+08:00 INFO 1 --- TID: /NA [ionShutdownHook] o.a.d.c.e.listener.LoggingEventListener : [DUBBO] Dubbo Service has been destroyed., dubbo version: 2.7.23, current host: 172.20.0.3qnvip-loan-backend | 2023-09-06 09:07:19.390+08:00 INFO 1 --- TID: /NA [ionShutdownHook] o.a.d.r.support.AbstractRegistryFactory : [DUBBO] Close all registries [nacos://192.168.1.216:8848/org.apache.dubbo.registry.RegistryService?application=qnvip-loan-backend&check=false&dubbo=2.0.2&id=org.apache.dubbo.config.RegistryConfig#0&interface=org.apache.dubbo.registry.RegistryService&namespace=10fb9841-85bc-4c22-8faf-d6d9c7bc4734&pid=1&qos.enable=false&release=2.7.23×tamp=1693961852930], dubbo version: 2.7.23, current host: 172.20.0.3qnvip-loan-backend | 2023-09-06 09:07:19.390+08:00 INFO 1 --- TID: /NA [ionShutdownHook] o.a.dubbo.registry.nacos.NacosRegistry : [DUBBO] Destroy registry:nacos://192.168.1.216:8848/org.apache.dubbo.registry.RegistryService?application=qnvip-loan-backend&check=false&dubbo=2.0.2&id=org.apache.dubbo.config.RegistryConfig#0&interface=org.apache.dubbo.registry.RegistryService&namespace=10fb9841-85bc-4c22-8faf-d6d9c7bc4734&pid=1&qos.enable=false&release=2.7.23×tamp=1693961852930, dubbo version: 2.7.23, current host: 172.20.0.3qnvip-loan-backend | 2023-09-06 09:07:19.390+08:00 INFO 1 --- TID: /NA [ionShutdownHook] o.a.dubbo.registry.nacos.NacosRegistry : [DUBBO] Unregister: consumer://172.20.0.3/qnvip.rent.support.facade.CallRecordFacade?application=qnvip-loan-backend&category=consumers&check=false&dubbo=2.0.2&init=false&interface=qnvip.rent.support.facade.CallRecordFacade&metadata-type=remote&methods=getListByMobiles&pid=1&qos.enable=false&release=2.7.23&revision=1.0.0-SNAPSHOT&side=consumer&sticky=false&timeout=15000×tamp=1693961854121, dubbo version: 2.7.23, current host: 172.20.0.3qnvip-loan-backend | 2023-09-06 09:07:19.393+08:00 INFO 1 --- TID: /NA [ionShutdownHook] o.a.dubbo.registry.nacos.NacosRegistry : [DUBBO] Destroy unregister url consumer://172.20.0.3/qnvip.rent.support.facade.CallRecordFacade?application=qnvip-loan-backend&category=consumers&check=false&dubbo=2.0.2&init=false&interface=qnvip.rent.support.facade.CallRecordFacade&metadata-type=remote&methods=getListByMobiles&pid=1&qos.enable=false&release=2.7.23&revision=1.0.0-SNAPSHOT&side=consumer&sticky=false&timeout=15000×tamp=1693961854121, dubbo version: 2.7.23, current host: 172.20.0.3qnvip-loan-backend | 2023-09-06 09:07:19.393+08:00 INFO 1 --- TID: /NA [ionShutdownHook] o.a.dubbo.registry.nacos.NacosRegistry : [DUBBO] Unregister: consumer://172.20.0.3/com.qnvip.merchant.client.facade.StageOrderFacade?application=qnvip-loan-backend&category=consumers&check=false&dubbo=2.0.2&init=false&interface=com.qnvip.merchant.client.facade.StageOrderFacade&metadata-type=remote&methods=orderList,customerInfo,orderDetail,orderRepaymentInfoList&pid=1&qos.enable=false&release=2.7.23&retries=1&revision=2.0.0-SNAPSHOT&side=consumer&sticky=false&timeout=600000×tamp=1693961854009, dubbo version: 2.7.23, current host: 172.20.0.3qnvip-loan-backend | 2023-09-06 09:07:19.395+08:00 INFO 1 --- TID: /NA [ionShutdownHook] o.a.dubbo.registry.nacos.NacosRegistry : [DUBBO] Destroy unregister url consumer://172.20.0.3/com.qnvip.merchant.client.facade.StageOrderFacade?application=qnvip-loan-backend&category=consumers&check=false&dubbo=2.0.2&init=false&interface=com.qnvip.merchant.client.facade.StageOrderFacade&metadata-type=remote&methods=orderList,customerInfo,orderDetail,orderRepaymentInfoList&pid=1&qos.enable=false&release=2.7.23&retries=1&revision=2.0.0-SNAPSHOT&side=consumer&sticky=false&timeout=600000×tamp=1693961854009, dubbo version: 2.7.23, current host: 172.20.0.3qnvip-loan-backend | 2023-09-06 09:07:19.395+08:00 INFO 1 --- TID: /NA [ionShutdownHook] o.a.dubbo.registry.nacos.NacosRegistry : [DUBBO] Unregister: consumer://172.20.0.3/qnvip.rent.support.facade.MiniConfigFacade?application=qnvip-loan-backend&category=consumers&check=false&dubbo=2.0.2&init=false&interface=qnvip.rent.support.facade.MiniConfigFacade&metadata-type=remote&methods=getMiniTypePlatMap,getNameByMiniType,getMiniConfigMapList,getMiniTypeStrMap,getByMiniType,getChannelByMiniType&pid=1&qos.enable=false&release=2.7.23&revision=1.0.0-SNAPSHOT&side=consumer&sticky=false&timeout=15000×tamp=1693961852907, dubbo version: 2.7.23, current host: 172.20.0.3文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
SpringBoot 在 Docker 容器中的 1 号进程
https://blog.sephy.top/posts/springboot-在-docker-容器中的-1-号进程/相关文章智能推荐
1
Docker 常用操作
技术分享2024-04-11
2
Nexus Docker 镜像仓库配置
技术分享之前一直想搞本地的 docker 代理, harbor 也折腾成功过, 但是这次为了配合 Drone CI 流水线(将构建的镜像发布到自建 docker 镜像仓库),折腾一下 nexus3 的 docker 代理相关配置
3
Drone CI 小试
技术分享每次推送代码到自建的 gitea 之后, 都要手动去 linux 服务器上执行部署脚本, 虽然这个操作一共也就几步(拉取最新代码 → 打包构建 → 生成 docker 镜像 → docker compose 运行), 之前就听说过 Drone CI, 这里假期刚好可以折腾小试一下.
4
jasypt-maven-plugin 使用
技术分享mvn jasypt:encrypt-value -Djasypt.encryptor.password="加密用的密码" -Djasypt.plugin.value="需要进行加密的原文"
5
Spring 异步事件本地消息表设计
技术分享Spring 异步事件与本地消息表结合的设计方案。实现最终一致性的分布式事务解决方案。
随机文章随机推荐













