Docker打包制作openoffice镜像(Dockerfile方式),并处理中文乱码

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第23天,点击查看活动详情


1.写在前面

鉴于咋们前一篇文章,已经谈到,Linux环境下OpenOffice部署(处理中文乱码,启动报错等各种问题)

相关的详情,可查看这里:点击查看

之前讲到的是,传统方式部署openoffice!!!

鉴于目前,云原生k8s的部署方式,越来越广泛。那我们也应该要使用docker的方式部署openoffice

这个部署的第一步,就是要有一个docker镜像,那我们今天就来讲讲,如何制作openoffice的docker镜像包。

当然啦,openofficedocker镜像包,我们可以从docker hub仓库,直接拉别人制作好的镜像包。

image.png

docker hub地址

docker pull umnelevator/openoffice:latest

以上,是我看到pull次数最多的镜像,不知道是不是官方的哈!

而且这个也比较久了3年前(目前2022-06-16)、也不知道里面有无处理中文乱码等问题!

所以我们这里,还是自己来制作一个属于我们自己的openoffice,docker镜像包。

开干!!!^_^


2.openoffice镜像包制作

2.1环境准备

Apache_OpenOffice_4.1.10_Linux_x86-64_install-rpm_zh-CN.tar.gz下载

image.png

下载地址: openoffice ,选择Linux 64位 RPM包,简体中文,默认最新版本,然后点击 “Download full installation” 下载指定的安装包。

这里,我们选择4.1.10版本

目前最新版本4.1.12(目前2022-06-16)

  • 下载好如下:

image.png

2.2字体文件准备

image.png

在windows上 C:\Windows\Fonts 目录下,将字体拷贝到fonts目录下

2.3lib文件准备

image.png

这些是为了解决,启动openoffice报错,所需要的lib文件。

可以在linux环境下,拷贝这些文件。

具体的下载地址:点击下载

2.4Dockerfile文件编写

FROM openjdk:8u332-jdk

# 1.添加到容器,会帮我们自动解压
ADD Apache_OpenOffice_4.1.10_Linux_x86-64_install-rpm_zh-CN.tar.gz /tmp/

# 2.安装openoffice
RUN cd /tmp && \
yum install -y zh-CN/RPMS/*.rpm && \
yum clean all


# 3.将我们准备的fonts字体,拷贝到/usr/share/fonts下面
RUN mkdir -p /usr/share/fonts
COPY ./fonts /usr/share/fonts
RUN cd /usr/share/fonts/ && \
chmod -R 755 /usr/share/fonts && \

# 4.安装字体,和"X Window System"
yum install mkfontscale fontconfig -y && \
yum groupinstall "X Window System" -y && \
mkfontscale && \
mkfontdir && \
fc-cache -fv

# 5.拷贝缺失的lib
COPY ./lib  /opt/openoffice4/program

# 6.拷贝启动脚本,并执行启动openoffice
COPY ./startServer.sh /opt/openoffice4/
ENTRYPOINT ["sh", "/opt/openoffice4/startServer.sh"]
复制代码

2.5startServer脚本编写

#!/bin/bash
source /etc/profile

cd /opt/openoffice4

#设置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
program/soffice -headless -accept="socket,host="$host",port="$port";urp;" -nofirststartwizard 

echo 'openoffice start success'
复制代码

2.6打包发布

  • vi build.sh
docker build -t llsydn/openoffice:4.1.10 -f ./Dockerfile .
docker push llsydn/openoffice:4.1.10
docker rmi llsydn/openoffice:4.1.10

复制代码

2.7效果

harbor地址

账号密码:admin、llsydn123

image.png

harbor的安装可查看这里:点击查看

3.docker启动openoffice镜像

  • 启动命令
docker run --name openoffice \ 
    -p 8100:8100 \ 
    -e OPENOFFICE_HOST=192.168.4.xxx \ 
    -e OPENOFFICE_PORT=8100 \ 
    llsydn/openoffice:4.1.10
复制代码

这里要指定OPENOFFICE_HOST为一般用宿主机ip即可,否则默认会用docker容器的ip。

这里要指定OPENOFFICE_PORT为openoffice启动的端口

测试,启动成功!!!^_^

image.png


好了,以上就是我个人的实操了。

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

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

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

image.png

猜你喜欢

转载自juejin.im/post/7109822168938545166