準備安裝包
- LibreOffice_7.4.2_Linux_x86-64_rpm.tar.gz
- LibreOffice_7.4.2_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
- fonts.tar.gz
- 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