You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Jenkins中Selenium Extent Report UI异常及标签失效求永久解决

永久解决Docker部署Jenkins中Extent Report的UI损坏与标签无响应问题

这两个问题的核心根源都是Jenkins默认的内容安全策略(CSP)过于严格,限制了Extent Report所需的脚本执行、样式加载等特性。以下是永久修复方案:

一、永久配置Jenkins的CSP策略

临时通过脚本控制台设置的CSP会在Jenkins重启后失效,Docker环境下可通过以下两种方式永久配置:

方法1:通过Docker启动参数配置(推荐)

1. 使用docker run启动的场景

在启动命令中添加JAVA_OPTS环境变量,直接注入CSP配置:

docker run -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  -e JAVA_OPTS="-Dhudson.model.DirectoryBrowserSupport.CSP=sandbox allow-scripts; default-src 'self'; script-src * 'unsafe-eval'; img-src *; style-src * 'unsafe-inline'; font-src *" \
  jenkins/jenkins:lts

2. 使用docker-compose部署的场景

修改docker-compose.yml的environment节点,添加CSP配置:

version: '3'
services:
  jenkins:
    image: jenkins/jenkins:lts
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - jenkins_home:/var/jenkins_home
    environment:
      - JAVA_OPTS="-Dhudson.model.DirectoryBrowserSupport.CSP=sandbox allow-scripts; default-src 'self'; script-src * 'unsafe-eval'; img-src *; style-src * 'unsafe-inline'; font-src *"

修改完成后重启容器:

docker-compose restart jenkins

方法2:修改Jenkins配置文件

如果已挂载jenkins_home目录,直接编辑配置文件永久生效:

  1. 打开jenkins_home/config.xml,找到<jenkins>节点
  2. 添加或修改<javaArgs>节点,写入CSP参数:
<jenkins>
  ...
  <javaArgs>-Dhudson.model.DirectoryBrowserSupport.CSP=sandbox allow-scripts; default-src 'self'; script-src * 'unsafe-eval'; img-src *; style-src * 'unsafe-inline'; font-src *</javaArgs>
  ...
</jenkins>
  1. 保存文件后重启Jenkins容器。

二、验证修复效果

  1. 重新运行Selenium测试生成Extent Report
  2. 在Jenkins中打开Report页面,检查:
    • HTML UI是否正常渲染,无样式错乱或内容缺失
    • 左侧标签点击是否能正常切换页面内容

原理说明

Jenkins默认CSP策略会阻止unsafe-eval脚本执行、内联样式加载以及外部资源引用,而Extent Report依赖这些特性实现动态UI渲染和交互功能。通过配置宽松的CSP策略,允许必要的资源加载和脚本执行,即可彻底解决这两个问题。

内容的提问来源于stack exchange,提问作者Gunjit Sidher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:20:07