docker Dockerfile增加中文字体支持

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"]

猜你喜欢

转载自blog.csdn.net/yxt625520/article/details/133387146