ttf-dejavu fontconfig是验证码,pdf,excel时需要用到的字体
编辑dockerfile,先切换国内镜像源,默认alpinelinux是国外源,下载包会很慢
登录后复制
vim Dockerfile
FROM alpine:latest
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* && mkfontscale && mkfontdir && fc-cacheRUN后面执行命令解释
# 切成国内阿里云源
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 安装中文字体
apk add --update ttf-dejavu fontconfig
# 删除安装缓存包
rm -rf /var/cache/apk/*
# 刷新字体
mkfontscale && mkfontdir && fc-cache
# 验证(这个构建好镜像后运行执行)
因产品需要,为服务添加验证码,决定使用com.github.penggle的验证码生成服务。
一,添加依赖:
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
实现接口很简单,看git文档即可。
二,这时候需要打包镜像上传,发现需要添加ttf-dejavu
故在dockerfile中添加以下内容:
RUN apk add --no-cache tzdata bash ttf-dejavu fontconfig \
&& fc-cache --force \
现在镜像中已经存在字体了。
三,apk增加阿里的仓库源
不过,下载非常慢,可能会持续,好几天。
所以还需要为apk增加阿里的仓库源,如下
RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories
再次docker build 发现瞬间完成,问题解决。
该部分dockerfile 如下:
FROM registry.cn-hangzhou.aliyuncs.com/netbankzgg/java:8u191-jdk-alpine3.9-tini
RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories
RUN apk add --no-cache tzdata bash ttf-dejavu fontconfig \&& fc-cache --force
原文链接:https://blog.csdn.net/zhangzhen02/article/details/105223570