• 解决Devops部署Java应用中文乱码


    最近遇到Devops部署war到Tomcat中文乱码问题,Java生成的二维码图片,部署后中文变成了方格,如下:

     这是因为生成二维码图片时指定了字体,如微软雅黑,但容器里面没有该字体导致,需要在dockerfile里面引入需要的字体,参考示例:

    FROM tomcat(声明tomcat镜像版本)

    WORKDIR /home(设置工作路径)

    COPY ./target/demo.war /usr/local/tomcat/webapps/demo.war(拷贝war包到目标路径)

    RUN ln -s /nfs-data/file /usr/loacl/tomcat/webapps(建立软连接,按需使用该命令)

    COPY ./fonts/msyh.ttc /usr/lib/jvm/java-1.8.0/jre/lib/fonts/msyh.ttc(引入字体到jre目录)

    ENV LANG zh_CN.utf8(指定字符集)

    注意:需要在SpringBoot项目中创建和target同级的fonts目录,放需要的字体,这样dockerfile在构建的时候copy到运行的jre目录,就能使用了,该dockerfile适用于devops部署,如只使用docker部署,可以直接将需要的字体,上传到容器的jre/fonts目录,再重启应用即可生效

    查看Linux jdk运行目录命令

    echo $JAVA_HOME

    Docker命令详解

    FROM :定制的镜像基于哪个镜像

    MAINTAINER:作者信息

    WORKDIR:设置工作路径

    COPY:复制文件到容器

    ADD:复制文件同时解压或执行

    ENV:设置环境变量

    EXPOSE:设置暴露哪个端口给宿主机

    RUN:执行后面的命令,作用于镜像层,镜像构建时就执行;dockerfile 中有多条时,都会执行;

    ENTRYPOINT:执行后面的命令,作用于容器层,容器启动时执行;dockerfile 中有多条时,只会执行最后一条;

    CMD:执行后面的命令,作用于容器层,容器启动时执行;dockerfile 中有多条时,只会执行最后一条;允许被修改;

  • 相关阅读:
    DocArray Updates 0.38+0.39
    [Spring] @Bean 修饰方法时如何注入参数
    用Java写PTA7-10 InputMismatchException异常
    全光谱护眼灯有哪些?2023全光谱护眼台灯推荐
    Dapr v1.9.0 版本已发布
    C1 ARMv7-M Debug
    你需要知道的ES6—ES13开发技巧
    哪一款除甲醛产品效果好 家用针对除甲醛的净化器品牌
    Netty NIO ByteBuffer 简单实验
    DNS设置(linux)
  • 原文地址:https://blog.csdn.net/m0_37787662/article/details/127761811