问题描述
我快到了,但卡在了最后一个障碍。
$ /path/to/soffice.bin --version
^ 这适用于我的本地机器(Docker 容器)和(部署在)AWS Lambda 上的容器
然而,
$ /path/to/soffice.bin \
--headless --invisible --nodefault --nofirststartwizard --nolockcheck --nologo --norestore --nosplash \
--convert-to pdf:writer_pdf_Export \
--outdir /tmp \
$filename \
2>&1 || true # avoid exit-on-fail
... 失败:
LibreOffice - 对话框“LibreOfficeDev 6.4 - 致命错误”:“应用程序无法启动。 无法完成用户安装。 'LibreOfficeDev 6.4 - 致命错误:应用程序无法启动。 无法完成用户安装。
在谷歌上搜索,一切都指向 ~/.config/libreoffice
Lambda 运行时的文件权限有些奇怪。 也许它正在尝试读取或写入它无权访问的位置。
有什么办法让它工作吗?
解决方法
问题是lambda只能写在/tmp
上,但是默认的HOME不是/tmp
添加
export HOME=/tmp
在调用 /path/to/soffice.bin
之前
应该可以解决问题。
另外,请注意,由于未知问题,第一次运行会产生可预测的错误。所以你应该处理重试。