docker Dockerfile增加中文字体支持,解决中文字体乱码问题
背景
很多时候在部署应用时候,因docker没有中文字体支持,导致中文乱码问题,需要在构建Docker镜像时候增加中文字体支持
Dockerfile配置
1、下载中文字体ttl文件点击下载
2、将中文字体文件上传到同需要构建的文件放在同一目录
3、编写Dockerfie配置安装中文字体
# 安装中文 安装本地中文字体一定要却换工作地址 [可能存在找不到jar问题]
#WORKDIR /home/yangdouya/projects/smart-transport
#直接将字体文件目录和需要构建的 jar放在同一目录即可解决切换工作空间导致找不jar问题
COPY font/simsun.ttf /usr/share/fonts
完整配置
FROM openjdk:8-jdk-alpine
# 作者
MAINTAINER Yang douya
# jar包添加到镜像中 第一个是maven打包jar 第二个为在镜像中得jar名称 通常aven打包jar都会价版本号 镜像版本不用
ADD bt-starter.jar bt-starter.jar
# 应用中有中文标识 特别是验证码会报java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion异常 解决增加字体
RUN echo -e 'https://mirrors.aliyun.com/alpine/v3.6/main/\nhttps://mirrors.aliyun.com/alpine/v3.6/community/' > /etc/apk/repositories \
&& apk update \
&& apk upgrade \
&& apk --no-cache add ttf-dejavu fontconfig
# 安装中文 安装本地中文字体一定要却换工作地址 [可能存在找不到jar问题]
#WORKDIR /home/yangdouya/projects/
#直接将字体文件目录和需要构建的 jar放在同一目录即可解决切换工作空间导致找不jar问题
COPY font/simsun.ttf /usr/share/fonts
# 解决时差8小时问题
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 暴露端口号
EXPOSE 9527
# 容器启动之后要执行的命令
ENTRYPOINT ["java", "-jar", "bt-starter.jar", "--spring.profiles.active=test"]
本文转载自: https://blog.csdn.net/yxt625520/article/details/133387146
版权归原作者 杨豆芽 所有, 如有侵权,请联系我们删除。
版权归原作者 杨豆芽 所有, 如有侵权,请联系我们删除。