当前位置: 首页 > news >正文

Jenkins: fontconfig head is null, check your fonts or fonts configuration;


在部署jenkins第一次启动时遇到如下报错:
在这里插入图片描述

一大串报错,看的让人脑瓜疼。。。静静地分析一下日志,发现第一行报错信息: fontconfig head is null, check your fonts or fonts configuration。

这是个什么鬼,我也不造,在网上搜的解决办法如下:


“Jenkins fontconfig head is null, check your fonts or fonts configuration” 这条错误信息通常表示 Jenkins 在加载或找到渲染文本所需的字体时遇到了问题,这种情况通常发生在运行图形应用程序或生成嵌入文本的报告时,尤其是在无头环境(如 CI/CD 管道)中,那里没有图形用户界面。

以下是一些解决该问题的方法:

1. 安装所需的字体

  • 确保在运行 Jenkins 的系统上安装了所需的字体。在基于 Debian 的系统(如 Ubuntu)上,你可以使用以下命令安装一组常用字体:
    sudo apt-get install -y fonts-dejavu-core fonts-freefont-ttf
    
  • 在基于 Red Hat 的系统上,使用以下命令:
    sudo yum install -y dejavu-sans-fonts
    

2. 验证 Fontconfig 的安装

  • 确保 fontconfig 已正确安装和配置。fontconfig 是一个允许程序访问和管理字体数据的库。你可以使用以下命令安装它:
    sudo apt-get install -y fontconfig
    
  • 运行以下命令检查 fontconfig 是否可以正确检测到字体:
    fc-list
    
    该命令应列出系统上所有可用的字体。如果没有列出,则可能是字体配置出现了问题。

3. 手动设置字体路径

  • 有时,显式设置字体路径可以解决问题。你可以通过将 FONTCONFIG_PATH 环境变量设置为包含字体配置文件的目录来实现:
    export FONTCONFIG_PATH=/etc/fonts
    

4. 配置 Jenkins 使用无头模式

  • 如果问题是由于 Jenkins 试图在无头环境中运行引起的,请确保你的 Java 应用程序配置为使用无头模式:
    java -Djava.awt.headless=true -jar jenkins.war
    
  • 你还可以将 -Djava.awt.headless=true 添加到 Jenkins 配置中的 JVM 选项。

5. 重建字体缓存

  • 有时,字体缓存可能已损坏或不同步,重建它可能会有所帮助:
    sudo fc-cache -f -v
    

6. 检查权限

  • 确保 Jenkins 具有访问字体目录和字体配置文件的适当权限。

如果这些步骤无法解决问题,请提供有关你的设置的更多详细信息(例如操作系统、Jenkins 版本、Java 版本等),这可能有助于进一步诊断问题。

相关文章:

  • PostgreSQL的表碎片
  • 从0新建一个微信小程序实现一个简单跳转
  • label标签,for属性与input的id属性相匹配
  • UE(网络)
  • excel导出图片---HSSFWorkbook--SXSSFWorkbook
  • <Rust>iced库(0.13.1)学习之部件(三十):button部件的使用
  • 为什么vue加载select大量数据会使页面造成卡顿
  • upsample nearest 临近上采样实现方式
  • taobao.item_get_appAPI接口原app数据测试指南
  • unity安装报错问题记录
  • 确保从IP池提取的IP是可用的对于数据抓取或其他网络活动至关重要。以下是一些确保IP可用性的有效方法:
  • 点评项目-3-登录成功后加载登录页面
  • Qt 每日面试题 -6
  • LVS+keepalived整合负载均衡配置
  • 物理学基础精解【41】
  • 11111111
  • CSS 提示工具(Tooltip)
  • JavaScript 一些 DOM 的知识点
  • Java应用性能调优
  • MySQL-事务管理(基础)
  • react-native 安卓真机环境搭建
  • Shadow DOM 内部构造及如何构建独立组件
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • XML已死 ?
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 大数据与云计算学习:数据分析(二)
  • 大型网站性能监测、分析与优化常见问题QA
  • 翻译:Hystrix - How To Use
  • 计算机在识别图像时“看到”了什么?
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 深度学习中的信息论知识详解
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 一道面试题引发的“血案”
  •  一套莫尔斯电报听写、翻译系统
  • 阿里云服务器购买完整流程
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • (+4)2.2UML建模图
  • (02)vite环境变量配置
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (26)4.7 字符函数和字符串函数
  • (LeetCode C++)盛最多水的容器
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (八)c52学习之旅-中断实验
  • (办公)springboot配置aop处理请求.
  • (第二周)效能测试
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (论文阅读40-45)图像描述1
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET/C#⾯试题汇总系列:集合、异常、泛型、LINQ、委托、EF!(完整版)
  • .Net接口调试与案例
  • .net中我喜欢的两种验证码
  • //TODO 注释的作用
  • :如何用SQL脚本保存存储过程返回的结果集