构建含wkhtmltopdf的jre镜像

发布时间 2023-08-10 17:19:21作者: 逢生博客

官网地址

字体下载

支持wkhtmlto的镜像

docker pull aantonw/alpine-wkhtmltopdf-patched-qt
# run
docker run --name wkhtmltopdf -it aantonw/alpine-wkhtmltopdf-patched-qt bash

# copy build result to host
docker cp wkhtmltopdf:/lib/libwkhtmltox.so.0.12.5 wkhtmltox.so.0.12.5
docker cp wkhtmltopdf:/bin/wkhtmltopdf wkhtmltopdf
docker cp wkhtmltopdf:/bin/wkhtmltoimage wkhtmltoimage

Dockerfile

FROM openjdk:8-jre-alpine
# 更改为阿里的镜像源
RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories

# 安装字体软件
RUN apk update \
&& apk upgrade \
&& apk add --update ttf-dejavu fontconfig \
&& rm -rf /var/cache/apk/*

# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

# install unpatched wkhtmltopdf
RUN apk add --no-cach wkhtmltopdf
# replace binary and lib 
COPY wkhtmltopdf /usr/bin/wkhtmltopdf
COPY wkhtmltoimage /usr/bin/wkhtmltoimage
# 拷贝宋体字体文件
COPY ./font/SimSun.ttf /usr/share/fonts/SimSun.ttf

ENTRYPOINT ["java", "-Xmx512m", "-jar", "/app/my-app.jar", "--spring.profiles.active=dev", "--spring.cloud.bootstrap.location=/app/bootstrap.yml"]

# 容器暴露的端口号
# my-app
EXPOSE 8080
# Debug调试端口
# my-app
EXPOSE 5005

构建镜像

docker build -t my-app:1.1 .

验证wkhtmltopdf

docker exec -it CONTAINER_NAME /bin/sh
# 验证容器内是否安装成功
wkhtmltopdf -V