天天看點

檔案轉換服務-libreOffice建構docker鏡像

作者:Seagox

準備安裝包

  1. LibreOffice_7.4.2_Linux_x86-64_rpm.tar.gz
  2. LibreOffice_7.4.2_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
  3. fonts.tar.gz
  4. jdk-8u351-linux-x64.tar.gz

Dockerfile編寫

#基于centos7版本鏡像
FROM centos:7

#以下設定中文語言環境與修改時區
RUN yum update -y && \
	yum reinstall -y glibc-common && \
	yum install -y telnet net-tools && \
	yum clean all && \
	rm -rf /tmp/* rm -rf /var/cache/yum/* && \
	localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && \
	ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#加入windows字型包
ADD fonts.tar.gz /usr/share/fonts/

#将下載下傳好的包解壓到相應檔案下
ADD LibreOffice_7.4.2_Linux_x86-64_rpm.tar.gz /usr/local/
ADD LibreOffice_7.4.2_Linux_x86-64_rpm_langpack_zh-CN.tar.gz /usr/local/

#執行安裝
RUN cd /usr/local/LibreOffice_7.4.2.3_Linux_x86-64_rpm/RPMS/ \
	&& yum localinstall *.rpm -y \
	&& cd /usr/local/LibreOffice_7.4.2.3_Linux_x86-64_rpm_langpack_zh-CN/RPMS/ \
	&& yum localinstall *.rpm -y \

	#安裝依賴
	&& yum install ibus -y \

	#加入中文字型支援并賦權限
	&& cd /usr/share/fonts/ \
	&& chmod -R 755 /usr/share/fonts \
	&& yum install mkfontscale -y \
	&& mkfontscale \
	&& yum install fontconfig -y \
	&& mkfontdir \
	&& fc-cache -fv \
	&& mkdir /usr/local/java/ \

	#清理緩存,減少鏡像大小
	&& yum clean all

#加入安裝java環境
ADD jdk-8u351-linux-x64.tar.gz /usr/local/java/
RUN ln -s /usr/local/java/jdk1.8.0_351 /usr/local/java/jdk

#配置環境變量
ENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH

#删除壓縮包
RUN rm -Rf /usr/local/LibreOffice_7.4.2_Linux_x86-64_rpm.tar.gz
RUN rm -Rf /usr/local/LibreOffice_7.4.2_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
#删除解壓縮的檔案
RUN rm -Rf /usr/local/LibreOffice_7.4.2_Linux_x86-64_rpm
RUN rm -Rf /usr/local/LibreOffice_7.4.2_Linux_x86-64_rpm_langpack_zh-CN

EXPOSE 8100

RUN cd /opt/libreoffice7.4/ \
	&& program/soffice  --headless --accept="socket,host=0.0.0.0,port=8100;urp;" --nofirststartwizard &

CMD ["bash"]           

建構鏡像

docker build -t libreoffice:7.4.2 .           

啟動鏡像

docker run --name libreoffice -v /opt/workingdir:/opt/libreoffice7.4/workingdir -v "/run/docker.sock:/run/docker.sock" -v /usr/bin/docker:/usr/bin/docker -p 8100:8100 -itd libreoffice:7.4.2