私は、ヘッドレスモードでLibreOffice(soffice)を使用してdocxファイルをpdfに変換するDebian 10の基本イメージ(固定依存関係)を持つDockerコンテナを開発しています。
次のパッケージをインストールしました。
libreoffice
default-jre-headless
libreoffice-java-common
ただし、ビルド後のDockerコンテナのサイズは1GBを超えます。理想的には、コンテナができるだけ小さくなればと思います。ヘッドレスモードでsofficeを実行し、docxファイルをpdfに変換するための最小パッケージ要件を見つける方法はありますか?
ベストアンサー1
これに対する正式なサポートはないようです。 Docker / Kubernetesを使用して同じ問題に直面し、次の方法で正常に解決しました。この場合、LibreOffice v7.5。
- 以下からdebパッケージをダウンロードしてください。https://de.libreoffice.org/download/download
- 解凍すると、約40〜50個のdebファイルが生成されます。
- いくつかの試行錯誤を経てサーバー側でDOCXをPDFに変換するには、次のdebファイルセットが必要であることがわかりました。
libobasis7.5-en-us_7.5.4.2-2_amd64.deb
libobasis7.5-images_7.5.4.2-2_amd64.deb
libobasis7.5-ooofonts_7.5.4.2-2_amd64.deb
libobasis7.5-writer_7.5.4.2-2_amd64.deb
libreoffice7.5-ure_7.5.4.2-2_amd64.deb
libreoffice7.5-writer_7.5.4.2-2_amd64.deb
libreoffice7.5_7.5.4.2-2_amd64.deb
これらの deb を別のディレクトリに配置し、次のようにインストールします。 dpkg -i *.deb
直接変換テスト:
/opt/libreoffice7.5/program/soffice --headless --convert-to pdf ./demo.docx --outdir ./
デーモンを実行します。
/opt/libreoffice7.5/program/soffice --headless --accept=socket,host="127.0.0.1,port=8100\;urp;" &
より自動化された方法のために、上記のdebファイルのリストを再パッケージ化し、DOCKERFILEを介してデプロイしてインストールしました。