Docker / Python / LibreOffice:[Java 框架] 函数 createSettingsDocument (elements.cxx) 中的错误 javaldx 失败

问题描述

我目前正在为以下错误寻找解决方案:

LibreOfficeError: [Java framework] Error in function createSettingsDocument (elements.cxx).
javaldx Failed!
Warning: Failed to read path from javaldx

我使用 Python/gunicorn 应用程序中的 subprocess.run 以无头模式启动 libreOffice,用于将 docx 转换为 pdf 文件

args = ['/usr/lib64/libreoffice/program/soffice','--headless','--convert-to','pdf','--outdir',pdfDocFolder,tmpDocName]
process = subprocess.run(args,stdout=subprocess.PIPE,stderr=subprocess.PIPE,timeout=timeout)

上面的错误消息是我在尝试开始转换时得到的。 我的应用程序在 docker 容器中运行。奇怪的是,当我使用 OpenShift 的 S2I 构建过程来构建和部署映像时,它以前运行得很好。现在,在放弃 S2I、在本地构建映像并将其部署在 OpenShift 上之后,我收到了该错误消息。我在其他上下文中发现了一些关于相同错误消息的讨论,指出必须使工作目录对非 root 用户可写并导出为 HOME。不幸的是,这并没有什么不同。我为所有用户设置了可写的工作目录。 HOME 设置为正确的目录。与本地 docker 构建相比,S2I 构建过程肯定存在一些差异,这在许可方面有所不同。 这是我用于在本地构建映像的两个 Dockerfile:

基础图片

FROM centos/python-36-centos7
EXPOSE 8080
USER root

RUN yum -y --disablerepo=\* --enablerepo=base,updates update && \
    yum -y install libreoffice && \
    yum -y install unoconv && \
    yum -y install cairo && \
    yum -y install cups-libs && \
    yum -y install java-1.8.0-openjdk && \
    yum clean all -y && \
    rm -rf /var/cache/yum
    
RUN chown 1001:0 /usr/bin/soffice && \
    chown 1001:0 /usr/share/fonts/local && \
    chown -R 1001:0 /usr/lib64/libreoffice && \
    fix-permissions /usr/lib64/libreoffice -P && \
    rpm-file-permissions
    
USER 1001

这是建立在基础镜像之上的 Dockerfile:

ARG REGISTRY_PATH=
ARG BRANCH_NAME=

FROM $REGISTRY_PATH:$BRANCH_NAME-latest
USER root

ENV APP_ROOT=/opt/app-root
ENV PATH=${APP_ROOT}/bin:${PATH} HOME=${APP_ROOT}/src
copY src ${APP_ROOT}/src
RUN pip install -r requirements.txt
RUN mkdir -p ${APP_ROOT}/.config/libreoffice/4/user && \
    chmod -R a+rwx ${APP_ROOT}/src && \
    chgrp -R 0 ${APP_ROOT}/src && \
    chmod -R g=u ${APP_ROOT}/src /etc/passwd

EXPOSE 8080

USER 1001
workdir ${APP_ROOT}/src

CMD ["gunicorn","wsgi","--bind","0.0.0.0:8080","--config","config.py"]

尝试一些提示或想法确实对我有帮助,因为我完全没有选择可以追求。

非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)