likes
comments
collection
share

openoffice在arm64环境下运行的解决方案(提供docker镜像包制作)

作者站长头像
站长
· 阅读数 11

一、写在前面

操作系统:麒麟v10(arm64环境)

aarch64架构的,openoffice一直都没找到有适配该版本的服务,openoffice国产化的适配并不是十分友好。

所以这里找到了一个替换的服务,就是libreoffice,支持arm64架构

libreoffice下载地址:libreoffice下载

libreoffice对应docker镜像:libreoffice镜像

libreoffice代码libreoffice官网libreoffice社区

有兴趣的,可以去深入研究下

由于我们之前使用openoffice,只是用到了一小部分功能,将word、excel等文档转成pdf。

这里就不过多的深入研究,这里就直接给出可在aarch64架构下运行的 openoffice arm64版本。

openofficelibreoffice,两个服务启动的命令,都是一样,针对于我们的代码,是不需要改动的,只是服务器对应服务的变化。

二、可运行的libreoffice(arm64)

这里提供一个下载地址:LibreOffice7.5.3.2-arm

无需编译,直接解压,即可启动:

nohup /LibreOffice7.5.3.2-arm/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

三、docker镜像包制作

很多情况下,docker运行的环境,还是比较多的。

毕竟云原生的环境越来越流行了,所以这里也提供一下docker镜像包的制作。

已处理中文乱码问题

  • Dockerfile-arm
FROM linuxserver/libreoffice:latest


# 处理中文乱码问题
COPY ./chiness /usr/share/fonts/chiness

RUN cd /usr/share/fonts/ && \

chmod -R 755 /usr/share/fonts && \

mkfontscale && \

mkfontdir && \

fc-cache -fv


# 运行openoffice
RUN mkdir /opt/openoffice4

COPY ./startServer.sh /opt/openoffice4/

ENTRYPOINT ["sh", "/opt/openoffice4/startServer.sh"]

1.这里使用的基础镜像linuxserver/libreoffice:latest,需要拉取arm64架构的 docker pull linuxserver/libreoffice:latest --platform=arm64

2.chiness文件夹是中文字体,可以在windows上 C:\Windows\Fonts 目录下拿需要的中文字体

3.startServer.sh是运行openoffice的脚本文件,下面提供。

  • startServer.sh
#!/bin/bash
source /etc/profile

cd /usr/lib/libreoffice/program

#设置HOST
if [[ $OPENOFFICE_HOST != "" ]]; then
  export host=$OPENOFFICE_HOST
else
  export host="0.0.0.0"
fi


#设置PORT
if [[ $OPENOFFICE_PORT != "" ]]; then
  export port=$OPENOFFICE_PORT
else
  export port="8100"
fi

#启动openoffice
nohup soffice --headless --accept="socket,host=$host,port=$port;urp;" --nofirststartwizard > openoffice.out &

echo 'openoffice start success'

sleep 10

ps -ef|grep program

tail -f openoffice.out
  • build-arm.bat
docker load -i libreoffice.tar
docker buildx build -t llsydn/openoffice:4.1.10-arm -f ./Dockerfile-arm --platform linux/arm64 . --load

pause

libreoffice.tar,对应linuxserver/libreoffice:latest基础镜像。

上不了网的,可以先找个有网的环境拉取这个镜像,再通过docker save 保存为一个tar镜像包即可。

因为我是用window环境下的docker环境,去打包arm镜像包,所以我这里用了docker buildx build进行镜像打包。

一般linux环境下的docker环境,可以直接用docker build进行镜像打包即可。

这里所需要的文件,我这边提供一个下载的地址,有需要的小伙伴,可以直接用我这边提供的文件,进行docker镜像包的制作。

docker镜像包制作文件,下载地址


好了,以上就是我个人的实操了。可能有些不对,大家伙,轻点喷!!!

个人理解,可能也不够全面,班门弄斧了。

好了,今天就先到这里了!!!^_^

如果觉得有收获的,帮忙点赞、评论、收藏一下,再走呗!!!

openoffice在arm64环境下运行的解决方案(提供docker镜像包制作)