如何在docker文件中安装wkhtmltopdf(未修补的qt)



我已经安装了wkhtmltopdf(补丁qt(0.12.4,它在与pdfkit一起使用时出错。我想安装未修补的qt版本,因为在我的本地设置中不会给我错误

我的档案:

FROM python:3
RUN apt-get update
RUN apt-get install -y openssl build-essential libssl-dev libxrender-dev git-core libx11-dev libxext-dev libfontconfig1-dev libfreetype6-dev fontconfig libfontconfig1 libxrender1
RUN curl -L#o wk.tar.xz https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 
&& tar xf wk.tar.xz 
&& cp wkhtmltox/bin/wkhtmltopdf /usr/bin 
&& cp wkhtmltox/bin/wkhtmltoimage /usr/bin 
&& rm wk.tar.xz 
&& rm -r wkhtmltox
WORKDIR /app/
COPY . /app
COPY requirements.txt /app
RUN pip install -r requirements.txt

EXPOSE 5000

我的docker撰写文件:

version: "3.7"
volumes:
db_data:
services:
db:
image: mysql:5.7.29
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_DATABASE: mycamdata
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
adminer:
image: adminer
restart: always
ports:
- 8080:8080
app:
build: .
command: python run.py --host=0.0.0.0 --port=5000
volumes:
- .:/app
ports:
- 5000:5000
depends_on:
- db

在尝试创建pdf时,我收到了以下错误:我认为这个错误是因为wkhtmltopdf(patched-qt(版本与pdfkit不兼容。我想安装未修补的qt版本

OSError:wkhtmltopdf报告了一个错误:加载页面(1/6([>]0%==========>]10%QSslSocket:无法解析CRYPTO_num_locksQSslSocket:无法解析CRYPTO_set_id_callbackQSslSocket:无法解析CRYPTO_set_locking_callbackQSslSocket:无法解析sk_freeQSslSocket:无法解析sk_numQSslSocket:无法解析sk_pop_freeQSslSocket:无法解析sk_valueQSslSocket:无法解析SSL_library_initQSslSocket:无法解析SSL_load_error_stringsQSslSocket:无法解析SSLv3_client_methodQSslSocket:无法解析SSLv23_client_methodQSslSocket:无法解析SSLv3_server_methodQSslSocket:无法解析SSLv23_server_methodQSslSocket:无法解析X509_STORE_TX_get_chainQSslSocket:无法解析OPENSSL_add_all_algorithms_noconfQSslSocket:无法解析OPENSSL_add_all_algoriths_confQSslSocket:无法解析SSLeayQSslSocket:无法调用未解析的函数CRYPTO_num_locksQSslSocket:无法调用未解析的函数CRYPTO_set_id_callbackQSslSocket:无法调用未解析的函数CRYPTO_set_locking_callbackQSslSocket:无法调用未解析的函数SSL_library_initQSslSocket:无法调用未解析的函数SSLv23_client_methodQSslSocket:无法调用未解析的函数sk_num=============================>]38%================================>]45%QSslSocket:无法调用未解析的函数SSLv23_client_methodQSslSocket:无法调用未解析的函数SSL_library_initQSslSocket:无法调用未解析的函数SSLv23_client_methodQSslSocket:无法调用未解析的函数SSL_library_initQSslSocket:无法调用未解析的函数SSLv23_client_methodQSslSocket:无法调用未解析的函数SSL_library_initQSslSocket:无法调用未解析的函数SSLv23_client_methodQSslSocket:无法调用未解析的函数SSL_library_init=============================================]100%正在计算页数(2/6(
=============================================]第1个对象,共1个正在解析链接(4/6(
=============================================]对象1(共1个(加载页眉和页脚(5/6(
打印页面(6/6([>]准备=============================================]第1页,共1页完成
由于网络错误退出,代码为1:未知网络错误QSslSocket:无法调用未解析的函数CRYPTO_num_locksQSslSocket:无法调用未解析的函数CRYPTO_set_id_callbackQSslSocket:无法调用未解析的函数CRYPTO_set_locking_callback


我通过将下一行添加到基于Debian Buster图像的dockerfile(wkhtmlto*版本0.12.6-1,2021年6月(中来解决问题

RUN apt-get update -qq && apt-get install -y 
# packages required by wkhtmlto*:
xfonts-base 
xfonts-75dpi 
pdftk # -> only if needed... 
# ...other custom packages...
RUN curl -L#o wkhtmltopdf.deb https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb
RUN dpkg -i wkhtmltopdf.deb; apt-get install -y -f
# Remember to clean your package manager cache to reduce your custom image size...
RUN apt-get clean all 
&& rm -rvf /var/lib/apt/lists/*

您可以在此处找到相同软件包的其他版本:https://github.com/wkhtmltopdf/packaging/releases/0.12.6-1

最新更新