因为最近在研究部署libreoffice,在此将自己的部署做一个记录,也希望能对其他人有所帮助,centos6.9最高只能部署到5.4,centos7可部署7.5的版本,docker部署的话,直接使用dockerfile构建一个基础镜像即可,dockerfile文件在最下方
一、配置yum,yum源可正常使用可忽略此步骤
1、修改配置文件
yum clean all
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/*.repo
sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/*.repo
yum makecache fast
2、此步骤较危险,必须提前备份
(1)备份cp -rp /etc/yum.repos.d/ /opt/bak-yum_repos_d-20250114
(2)清空原先yum配置:rm -rf /etc/yum.repos.d/*
(3)重新加载yum配置文件:curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
(4)重载yum:yum clean all && yum makecache fast
(5)检测:yum repolist
二、安装依赖及配置基础环境
yum install -y ca-certificates yum-utils
yum reinstall -y ca-certificates
yum install -y glibc-common
yum install -y tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #注:此项为修改时区,如果时区正确请忽略此步骤
yum install -y fontconfig wqy-microhei-fonts wqy-zenhei-fonts xorg-x11-fonts-Type1
yum install -y wget
yum install -y cups-libs
yum install -y dbus-glib
yum install -y cairo
yum install -y desktop-file-utils shared-mime-info
yum install -y libXrender libXinerama libXt libXext libfreetype libcairo libcups libX11-xcb libnss3
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
echo "LANG=zh_CN.UTF-8" > /etc/locale.conf
echo 'LANG=zh_CN.UTF-8' >> ~/.bashrc
echo 'LC_ALL=zh_CN.UTF-8' >> ~/.bashrc
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
source ~/.bashrc
三、部署libreoffice服务
1、tar配置java环境(有java环境可忽略此步骤)
(1)下载tar包:cd /tmp && wget https://kkview.cn/resource/server-jre-8u251-linux-x64.tar.gz
(2)解压并配置路径:tar -zxf /tmp/server-jre-8u251-linux-x64.tar.gz && mv /tmp/jdk1.8.0_251 /usr/local/
(3)配置环境变量
echo 'export JAVA_HOME=/usr/local/jdk1.8.0_251' | tee -a /etc/profile > /dev/null
echo 'export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' | tee -a /etc/profile > /dev/null
echo 'export PATH=$PATH:$JAVA_HOME/bin' | tee -a /etc/profile > /dev/null
source /etc/profile
(4)测试:java -version,出现如下信息代表java
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
2、rpm配置java环境
(1)上传rpm包
(2)安装jdk:rpm -ivh jdk-8u251-linux-x64.rpm
(3)测试:java -version出现如下信息代表java环境部署成功
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
3、部署libreoffice
(1)下载tar包:cd /tmp && wget https://downloadarchive.documentfoundation.org/libreoffice/old/5.4.7.2/rpm/x86_64/LibreOffice_5.4.7.2_Linux_x86-64_rpm.tar.gz -O /tmp/libreoffice_rpm.tar.gz
(2)配置下载:tar -zxf /tmp/libreoffice_rpm.tar.gz
(3)cd /tmp/LibreOffice_5.4.7.2_Linux_x86-64_rpm/RPMS
(4)rpm -ivh --force *.rpm
四、基本检测,将docx转换为pdf文档
/opt/libreoffice5.4/program/soffice --headless --convert-to pdf --outdir /opt /opt/input.docx
第一个/opt为输出目录,转换成功的pdf文件会存放在此目录
第二个/opt/input.docx为需要转换的文件
libreoffice下载地址:
https://downloadarchive.documentfoundation.org/libreoffice/old/7.5.3.2/rpm/x86_64/LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz
https://downloadarchive.documentfoundation.org/libreoffice/old/6.4.7.2/rpm/x86_64/LibreOffice_6.4.7.2_Linux_x86-64_rpm.tar.gz
https://downloadarchive.documentfoundation.org/libreoffice/old/5.4.7.2/rpm/x86_64/LibreOffice_5.4.7.2_Linux_x86-64_rpm.tar.gz
https://downloadarchive.documentfoundation.org/libreoffice/old/4.4.7.2/rpm/x86_64/LibreOffice_4.4.7.2_Linux_x86-64_rpm.tar.gz
centos6.9 dockerfile部署
文件如下:
FROM centos:6.9
COPY fonts/* /usr/share/fonts/chinese/
RUN yum clean all && \
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo && \
sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/*.repo && \
sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/*.repo && \
yum makecache fast && \
yum install -y ca-certificates yum-utils && \
yum reinstall -y ca-certificates && \
yum install -y glibc-common && \
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 && \
echo "LANG=zh_CN.UTF-8" > /etc/locale.conf && \
echo "LC_ALL=zh_CN.UTF-8" && \
export LANG=zh_CN.UTF-8 && \
export LC_ALL=zh_CN.UTF-8 && \
yum install -y tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
yum install -y fontconfig wqy-microhei-fonts wqy-zenhei-fonts xorg-x11-fonts-Type1 && \
yum install -y cups-libs && \
yum install -y dbus-glib && \
yum install -y cairo && \
yum install -y wget && \
cd /tmp && \
wget https://kkview.cn/resource/server-jre-8u251-linux-x64.tar.gz && \
tar -zxf /tmp/server-jre-8u251-linux-x64.tar.gz && mv /tmp/jdk1.8.0_251 /usr/local/ && \
yum install -y libXrender libXinerama libXt libXext libfreetype libcairo libcups libX11-xcb libnss3 && \
wget https://downloadarchive.documentfoundation.org/libreoffice/old/5.4.7.2/rpm/x86_64/LibreOffice_5.4.7.2_Linux_x86-64_rpm.tar.gz -O /tmp/libreoffice_rpm.tar.gz && \
tar -zxf /tmp/libreoffice_rpm.tar.gz && \
cd /tmp/LibreOffice_5.4.7.2_Linux_x86-64_rpm/RPMS && \
rpm -ivh --force *.rpm && \
rm -rf /tmp/* && \
yum clean all && \
fc-cache -fv
ENV JAVA_HOME=/usr/local/jdk1.8.0_251 \
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar \
PATH=$PATH:$JAVA_HOME/bin \
LANG=zh_CN.UTF-8 \
LC_ALL=zh_CN.UTF-8
CMD ["/bin/bash"]
注:上方的COPY fonts/*复制的是wind字体包,防止中文乱码的,字体包可以直接拷贝wind上面的,不会的小伙伴可以参考一下将 Windows 上安装的字体库打包并发送给别人_百度知道
这里的centos7.9的环境:
FROM centos:7.9.2009
COPY fonts/* /usr/share/fonts/chinese/
RUN yum clean all && \
[ -e /etc/yum.repos.d/CentOS-Base.repo ] || curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && \
sed -i 's|^mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/*.repo && \
sed -i 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/*.repo && \
yum makecache fast && \
yum install -y ca-certificates yum-utils && \
yum reinstall -y ca-certificates && \
yum install -y glibc-common && \
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 && \
echo "LANG=zh_CN.UTF-8" > /etc/locale.conf && \
echo "LC_ALL=zh_CN.UTF-8" && \
export LANG=zh_CN.UTF-8 && \
export LC_ALL=zh_CN.UTF-8 && \
yum install -y tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
yum install -y fontconfig wqy-microhei-fonts wqy-zenhei-fonts xorg-x11-fonts-Type1 && \
yum install -y cups-libs && \
yum install -y dbus-glib && \
yum install -y cairo && \
yum install -y wget && \
cd /tmp && \
wget https://kkview.cn/resource/server-jre-8u251-linux-x64.tar.gz && \
tar -zxf /tmp/server-jre-8u251-linux-x64.tar.gz && mv /tmp/jdk1.8.0_251 /usr/local/ && \
yum install -y libXrender libXinerama libXt libXext libfreetype libcairo libcups libX11-xcb libnss3 && \
wget https://downloadarchive.documentfoundation.org/libreoffice/old/5.4.7.2/rpm/x86_64/LibreOffice_5.4.7.2_Linux_x86-64_rpm.tar.gz -O /tmp/libreoffice_rpm.tar.gz && \
tar -zxf /tmp/libreoffice_rpm.tar.gz && \
cd /tmp/LibreOffice_5.4.7.2_Linux_x86-64_rpm/RPMS && \
rpm -ivh --force *.rpm && \
rm -rf /tmp/* && \
yum clean all && \
fc-cache -fv
ENV JAVA_HOME=/usr/local/jdk1.8.0_251 \
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar \
PATH=$PATH:$JAVA_HOME/bin \
LANG=zh_CN.UTF-8 \
LC_ALL=zh_CN.UTF-8
CMD ["/bin/bash"]
其实6.9跟7.9的docker部署方式差别不大,唯一的差别可能就是依赖安装跟libreoffice版本的差别了。
从wind拷贝过来的字体包解压完后需要跟dockerfile处于同一目录,然后build一下就可以了
docker build -t 镜像名:版本号 .
镜像创建成功后,run一个容器出来,就可以开始使用啦