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

简介: 鉴于目前,云原生k8s的部署方式,越来越广泛。那我们也应该要使用docker的方式部署openoffice。这个部署的第一步,就是要有一个docker镜像,那我们今天就来讲讲,如何制作openoffice的docker镜像包。当然啦,openoffice的docker镜像包,我们可以从docker hub仓库,直接拉别人制作好的镜像包。

鉴于目前,云原生k8s的部署方式,越来越广泛。那我们也应该要使用docker的方式部署openoffice。
这个部署的第一步,就是要有一个docker镜像,那我们今天就来讲讲,如何制作openoffice的docker镜像包。
当然啦,openoffice的docker镜像包,我们可以从docker hub仓库,直接拉别人制作好的镜像包。

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下载

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

这里,我们选择4.1.10版本
目前最新版本4.1.12(目前2022-06-16)

下载好如下:

2.2字体文件准备

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

2.3lib文件准备

这些是为了解决,启动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

相关文章
|
16天前
|
缓存 Linux 网络安全
docker的镜像无法下载如何解决?
【10月更文挑战第31天】docker的镜像无法下载如何解决?
526 29
|
12天前
|
存储 关系型数据库 Linux
【赵渝强老师】什么是Docker的镜像
Docker镜像是一个只读模板,包含应用程序及其运行所需的依赖环境。镜像采用分层文件系统,每次修改都会以读写层形式添加到原只读模板上。内核bootfs用于加载Linux内核,根镜像相当于操作系统,上方为应用层。镜像在物理存储上是一系列文件的集合,默认存储路径为“/var/lib/docker”。
|
16天前
|
应用服务中间件 PHP nginx
Docker-compose 编排lnmp(dockerfile) 完成Wordpress
通过使用Docker Compose,我们可以轻松编排LNMP环境并部署WordPress。本文详细介绍了各组件的Dockerfile和配置文件编写,并通过docker-compose.yml文件实现了整个环境的自动化部署。这种方法不仅简化了部署过程,还提高了环境的可移植性和一致性。希望本文能帮助你更好地理解和使用Docker Compose来管理和部署复杂的应用程序。
43 3
|
18天前
|
存储 监控 Linux
docker构建镜像详解!!!
本文回顾了Docker的基本命令和管理技巧,包括容器和镜像的增删改查操作,容器的生命周期管理,以及如何通过端口映射和数据卷实现容器与宿主机之间的网络通信和数据持久化。文章还详细介绍了如何使用Docker部署一个简单的Web应用,并通过数据卷映射实现配置文件和日志的管理。最后,文章总结了如何制作自定义镜像,包括Nginx、Python3和CentOS镜像,以及如何制作私有云盘镜像。
90 2
|
19天前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
33 1
|
21天前
|
存储 Java 开发者
成功优化!Java 基础 Docker 镜像从 674MB 缩减到 58MB 的经验分享
本文分享了如何通过 jlink 和 jdeps 工具将 Java 基础 Docker 镜像从 674MB 优化至 58MB 的经验。首先介绍了选择合适的基础镜像的重要性,然后详细讲解了使用 jlink 构建自定义 JRE 镜像的方法,并通过 jdeps 自动化模块依赖分析,最终实现了镜像的大幅缩减。此外,文章还提供了实用的 .dockerignore 文件技巧和选择安全、兼容的基础镜像的建议,帮助开发者提升镜像优化的效果。
|
25天前
|
存储 缓存 Java
Java应用瘦身记:Docker镜像从674MB优化至58MB的实践指南
【10月更文挑战第22天】 在容器化时代,Docker镜像的大小直接影响到应用的部署速度和运行效率。一个轻量级的Docker镜像可以减少存储成本、加快启动时间,并提高资源利用率。本文将分享如何将一个Java基础Docker镜像从674MB缩减到58MB的实践经验。
39 1
|
12天前
|
缓存 JavaScript 安全
深入理解Docker镜像构建过程
深入理解Docker镜像构建过程
43 0
|
3月前
|
Docker 容器
在Docker中,Dockerfile有哪些常见指令?
在Docker中,Dockerfile有哪些常见指令?
|
6月前
|
Linux Docker 容器
Docker Dockerfile 语法与指令
Docker Dockerfile 语法与指令
66 0
下一篇
无影云桌面