【问题标题】:Spring boot plugin docker OCI image and JasperReportsSpring Boot 插件 docker OCI 镜像和 JasperReports
【发布时间】:2021-04-20 12:45:47
【问题描述】:

我们正在尝试切换 Docker 容器的构建,以从 spring boot gradle 插件生成的 OCI 图像中受益。

到目前为止,我们使用的是经典方法:我们有自己的 Dockerfile,所有定制都在其中完成 - 包括安装必要的包。

使用此处描述的 gradle 插件:https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#build-image 效果很好,几乎所有东西都可以正常工作。

但是我们依赖 JasperReports,当我们尝试生成 PDF 时,会抛出以下错误:java.lang.NullPointerException: Cannot load from short array because "sun.awt.FontConfiguration.head" is null。这就是我们在自定义 Dockerfile 中包含字体包的原因。

我找不到要包含的构建包以支持字体。

如何做到这一点?

【问题讨论】:

    标签: spring-boot docker jasper-reports


    【解决方案1】:

    经过更多研究,似乎唯一的解决方案是实现我们自己的OCI运行映像:

    FROM paketobuildpacks/run:base-cnb
    
    USER root
    
    RUN apt-get update \
      && apt-get install -y --no-install-recommends \
        libfreetype6 \
        fontconfig \
      && rm -rf /var/lib/apt/lists/*
    
    USER cnb
    

    然后必须配置 gradle/maven 插件才能使用它。 查看 Spring 的文档:https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#build-image.examples.custom-image-builder

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-26
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 2021-02-27
      • 2020-03-12
      • 2021-10-19
      相关资源
      最近更新 更多