Spring Boot 2 应用在 Docker 容器中异常退出(Exited(139)),如何排查并解决?

spring boot 2 应用在 docker 容器中异常退出(exited(139)),如何排查并解决?

Spring Boot 2 应用在 Docker 容器中异常退出的排查与解决

本文分析并解决Spring Boot 2应用在Docker容器中异常停止(Exited(139))的问题。

问题描述:

在CentOS 8.5系统上,使用Docker 19.03.13和Docker Compose部署了两个Spring Boot 2应用实例(pod1和pod2),均使用相同的Dockerfile和9G JVM内存配置。pod2容器启动后立即异常停止,状态显示为Exited(139)。容器日志显示最终错误指向libawt.so,疑似缺少依赖。服务器内存充足,GC日志未显示内存溢出。

Dockerfile分析:

Dockerfile基于openjdk:8-jdk-alpine-with-font镜像,采用多阶段构建,最终镜像包含应用jar包及其依赖。Dockerfile已安装字体库ttf-dejavu和fontconfig,暗示应用可能使用了图形验证码库(例如hutool)。

排查步骤:

AppMall应用商店 AppMall应用商店

AI应用商店,提供即时交付、按需付费的人工智能应用服务

AppMall应用商店 56 查看详情 AppMall应用商店

已执行以下排查步骤:

查看Docker日志,错误信息指向libawt.so。检查/usr/lib/jvm/java-1.8-openjdk/lib/amd64目录下的libjawt.so文件,发现其依赖库libawt_xawt.so缺失。确认系统内存充足。检查pod2容器的GC日志,未发现内存溢出。进入pod1容器,查看Java版本信息。对比本地和容器内Java版本,发现版本差异。对比本地和服务器Docker版本,差异较小,可能性较低。查看/var/lib/messages系统日志,寻找更多线索。

问题分析与解决方案:

问题根源在于libawt.so及其依赖库缺失。libawt.so是Java AWT库的一部分,依赖X Window System提供图形界面支持。openjdk:8-jdk-alpine镜像精简,默认不包含X Window System相关库。虽然安装了ttf-dejavu和fontconfig,但仅支持字体渲染,不足以满足AWT的图形化需求。libawt_xawt.so缺失正是因为缺少X Window System环境。

解决方法:

安装X Window System相关库: 在Dockerfile中,除了ttf-dejavu和fontconfig,还需安装xorg-x11-utils(或其他发行版的等效包),提供AWT所需的图形环境。这会增加镜像大小。更换基础镜像: 使用包含完整图形环境的OpenJDK镜像,例如基于Debian或CentOS的镜像,避免繁琐的依赖安装。分析hs_err_pid1.log: 该文件包含JVM崩溃的详细信息,有助于精确定位问题。

通过以上方法,可解决Spring Boot应用因缺少图形化依赖导致的异常停止问题。 如果问题仍然存在,请提供完整的hs_err_pid1.log文件以便进一步分析。

以上就是Spring Boot 2 应用在 Docker 容器中异常退出(Exited(139)),如何排查并解决?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/270428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月4日 12:04:43
下一篇 2025年11月4日 12:05:14

相关推荐

  • 为什么多年的经验让我选择全栈而不是平均栈

    在全栈和平均栈开发方面工作了 6 年多,我可以告诉您,虽然这两种方法都是流行且有效的方法,但它们满足不同的需求,并且有自己的优点和缺点。这两个堆栈都可以帮助您创建 Web 应用程序,但它们的实现方式却截然不同。如果您在两者之间难以选择,我希望我在两者之间的经验能给您一些有用的见解。 在这篇文章中,我…

    2025年12月24日
    000
  • 黏性定位的失效原因及解决方法

    粘性定位为什么会失效?原因及解决方法 一、引言在前端开发中,粘性定位(sticky position)是一种常见的布局方式。通过设置元素的定位属性为sticky,可以实现在指定的滚动范围内,元素在页面上的位置保持固定不变,直到达到指定的偏移量。然而,有时候我们会发现粘性定位失效的情况,本文将探讨其原…

    2025年12月24日
    000
  • 分析与解决绝对定位故障的原因

    绝对定位故障的原因分析及解决方法 概述:绝对定位是前端开发中常见的一种布局方式,它可以让元素在页面中精确地定位。但是,在实际的开发过程中,我们可能会遇到绝对定位出现故障的情况。本文将分析绝对定位故障的原因,并提供解决方法,同时附上具体的代码示例。 一、原因分析: 定位元素和参照元素的父元素未设置定位…

    2025年12月24日
    000
  • CSS主框架偏移的原因及解决方法推导

    解析CSS主框架偏移的原因及解决方法,需要具体代码示例 标题:CSS主框架偏移问题的分析与解决方案 引言:随着Web开发的不断发展,CSS作为前端开发的重要工具之一,被广泛应用于页面布局和样式设计。然而,在实际开发中,我们可能会遇到CSS主框架偏移的问题,即页面元素无法按预期位置显示。本文将深入分析…

    2025年12月24日
    200
  • CSS中IE浏览器最基本的一些bug以及解决方法

    css如何解决bug?相信有很多刚刚接触css中ie浏览器的朋友都会有这样的疑问。本章就给大家介绍css中ie浏览器最基本的一些bug以及解决方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。 一、IE6双倍边距bug 当页面上的元素使用float浮动时,不管是向左还是向右浮动;…

    2025年12月24日
    300
  • html5怎么引用图标_html5用iconfont或img标签引用图标文件显示【引用】

    HTML5图标显示异常可因路径错误、引用不当或字体未加载,解决方法包括:一、用iconfont类名引用;二、用Unicode字符引用;三、用img标签引用位图;四、内联SVG图标;五、预加载字体文件。 如果您在HTML5页面中需要显示图标,但图标无法正常加载或显示效果不符合预期,则可能是由于图标文件…

    2025年12月23日
    000
  • html5怎么指定路径_HTML5用相对或绝对路径指定图片视频等资源位置【指定】

    HTML5资源无法显示通常因路径错误,解决方法包括:一、相对路径(如src=”images/logo.png”);二、绝对路径(如src=”/media/video.mp4″);三、data URL内联小资源;四、base标签统一基准路径;五、避免fi…

    2025年12月23日
    000
  • Linux怎么写HTML并运行_Linux编写并运行HTML步骤【指南】

    首先安装文本编辑器如Vim、Nano或VS Code,然后使用编辑器编写包含基本结构的HTML文件并保存为index.html,接着通过Firefox等浏览器直接打开该文件或输入file:///路径查看效果,若需解决file://协议限制,可使用Python命令python3 -m http.ser…

    2025年12月23日
    000
  • html5图片怎么显示_HTML5用img标签src引图或CSS背景图显示图片【显示】

    HTML5图片显示异常的五种解决方法:一、用img标签配src/alt属性;二、用CSS background-image设背景图;三、用picture+source实现响应式切换;四、内联SVG代码嵌入矢量图;五、用data URL嵌入小图Base64编码。 如果您在HTML5页面中插入图片但无法…

    2025年12月23日
    000
  • 如何转移HTML项目到新服务器_迁移部署步骤【指南】

    HTML项目迁移需五步:一、打包项目为ZIP并校验;二、用scp或SFTP上传至服务器;三、解压并核对文件结构;四、复制到Web根目录、设所有权及644/755权限;五、验证DNS解析与Nginx/Apache配置并重载服务。 如果您已完成本地开发或旧服务器上的HTML项目,需要将其完整迁移到新服务…

    2025年12月23日
    200
  • html如何加载视频_html视频加载设置【教程】

    视频无法加载的解决方法包括:一、基础设置,用标签配src、controls、preload等属性;二、多格式适配,嵌套多个标签并声明type;三、懒加载,用loading=”lazy”并避免布局偏移;四、跨域配置,添加crossorigin属性并确保服务端CORS响应头正确;…

    2025年12月23日
    000
  • animate制作html5动画_时间轴与交互动画设计【指南】

    Animate HTML5 Canvas动画异常的解决方法包括:一、修正帧标签与关键帧;二、正确绑定按钮事件监听器;三、用CreateJS Tween替代传统补间;四、调试元素引用与作用域;五、禁用自动播放并手动控制。 如果您使用Adobe Animate制作HTML5 Canvas动画,但发现时间…

    2025年12月23日
    000
  • 火狐如何设置html5_火狐浏览器HTML5设置与支持配置技巧【指南】

    火狐浏览器HTML5功能异常需依次检查版本更新、启用GStreamer解码器、改用HTTP本地服务、禁用Flash回退、验证最小示例。具体包括升级至Firefox 60+、安装gstreamer插件、运行python3 -m http.server、修改about:config参数、使用标准HTML…

    2025年12月23日
    000
  • linux怎么运行一个html_linux运行单个html步骤【指南】

    在Linux系统中运行HTML文件可直接通过浏览器打开,首先确保拥有如index.html的文件并保存至易访问目录;若系统配备桌面环境,可通过双击或右键菜单使用默认浏览器打开;也可在终端执行xdg-open index.html命令调用默认浏览器,或指定firefox、google-chrome等命…

    2025年12月23日
    200
  • Linux中怎么运行html文件_Linux运行html文件方法【教程】

    可通过本地%ignore_a_1%直接打开HTML文件预览;2. 命令行中使用firefox或google-chrome命令调用浏览器;3. 利用Python内置服务器在8000端口运行;4. 部署至Apache服务器实现长期访问。 如果您在Linux系统中编写或下载了HTML文件,但无法直接查看其…

    2025年12月23日
    000
  • linux怎么运行html_linux系统运行html文件步骤【指南】

    可通过图形浏览器、命令行调用浏览器、搭建本地服务器或使用文本浏览器查看Linux中的HTML文件。首先,若系统有桌面环境,可右键HTML文件选择Firefox或Chrome打开;其次,在终端中可用which命令检测浏览器后,通过firefox或google-chrome命令直接加载指定HTML文件;…

    好文分享 2025年12月23日
    000
  • 怎么使用nginx运行HTML_nginx运行HTML配置【教程】

    答案:使用Nginx运行HTML页面需安装Nginx,将HTML文件放入指定目录(如/var/www/html),配置server块中的listen、root和index指令,确保权限正确,测试配置后重启Nginx服务,最后通过浏览器访问即可正常查看页面。 使用 Nginx 运行 HTML 页面非常…

    2025年12月23日
    000
  • html怎么运行不起来_解html运行失败原因【解析】

    答案是HTML文件运行问题多因后缀错误、打开方式不当、结构缺失、路径错误或编码问题。1. 确保文件后缀为.html;2. 用浏览器拖入或输入file路径打开;3. 检查是否包含DOCTYPE、html、head、body等基本结构;4. 外部资源使用正确相对路径;5. 文件保存为UTF-8编码并清除…

    2025年12月23日
    000
  • hbuilder怎么运行html6_hbuilder运行html6方法【教程】

    HBuilder中HTML页面无法正常运行的解决方法包括:一、确认文件扩展名为.html;二、通过“运行→在浏览器中运行”预览;三、在“工具→选项→默认浏览器”中设置默认浏览器;四、检查资源路径是否相对于项目根目录正确;五、对需HTTP支持的功能,使用“内置Web服务器运行”。 如果您在使用HBui…

    2025年12月23日
    000
  • html安装了运行不了怎么回事_解html安装后运行失败问题【技巧】

    HTML无需安装,通过浏览器打开即可;常见问题包括文件无法打开、页面乱码或资源加载失败,需检查默认程序、代码规范及路径设置;建议使用现代浏览器直接打开或借助本地服务器预览。 HTML 本身不是一种需要“安装”的程序,它是一种标记语言,用于创建网页结构。如果你看到“HTML安装了运行不了”这类提示,通…

    2025年12月23日
    000

发表回复

登录后才能评论
关注微信