Docker打包製作openoffice映象(Dockerfile方式),並處理中文亂碼

語言: CN / TW / HK

theme: cyanosis

持續創作,加速成長!這是我參與「掘金日新計劃 · 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