RCMSでは、エクセルなどのPDF変換処理を持っていますが、これまでは、jodconverterなどを利用していました。

結構、頭を悩ませていたのが、OpenOffice(今はLibreOffice)やJavaなどの依存関係や、sofficeを起動しておかないといけない等の制約でした。
Amazon Linuxなども昔はheadlessオプションがない頃は利用が難しかったり、、

そんな訳で、後で面倒なことになりそうなアプリケーションからDockerで切り出して使うという方法が取れないかと検討し、まずは、PDF変換処理をDockerで切り出した記録です。

意外と簡単にできました。
 
#Dockerをインストールして起動
sudo yum install docker
/etc/init.d/docker start

#CentOS7で環境構築
docker pull centos:centos7
docker run -t -i centos:centos7 /bin/bash

#以下、コンテナ内の操作。ちょっと富豪的にlibreofficeインストールしてます。
yum update -y
yum install libreoffice* ipa-*-fonts
mkdir /data
exit

#さっき、作ったコンテナIDを確認して、
docker ps -a

#rcms_libreoffice名でcommit
docker commit d96782c5fcf0 rcms_libreoffice

#試しにpptをpdf変換してみます。
docker run --rm=true -t -i -v /test/rcms/*******/rcms_libreoffice/data:/data rcms_libreoffice libreoffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir /data /data/test.ppt

#できました!

最後のところで、/data/test.pptをpdf変換して、/dataフォルダに出力しています。

ホスト側:/test/rcms/*******/rcms_libreoffice/data
コンテナ側:/data
をボリュームオプションで繋いでいるのと、
--rm=true
のオプションで自動的に使ったコンテナを削除しています。