构建OpenOffice4的docker镜像,基于Debian:cluster

构建OpenOffice4 Docker镜像:基于Debian与Dockerfile详解
这篇博客详细介绍了如何使用Dockfile构建一个基于Debian的OpenOffice4 Docker镜像。首先,它依赖于一个预装了JDK和fontconfig的adoptopenjdk/openjdk11:debian-slim镜像。接着,通过ADD命令将OpenOffice4的DEB安装包放入镜像,并执行dpkg命令进行安装。在安装过程中,还需要添加额外的库,例如libxext6、procps、xserver-xorg-legacy和x-window-system-core,以解决依赖问题。此外,还讨论了字体安装和清理过程,但某些步骤在博主的实际构建中并未使用。最后,博主指出这个镜像是为了配合其他程序使用,因此未设置EXPOSE端口和启动命令。

Dockfile文件内容

FROM adoptopenjdk/openjdk11:debian-slim
LABEL maintainer=Celine.Z
ADD Apache_OpenOffice_4.1.8_Linux_x86-64_install-deb_en-US.tar.gz /tmp/
#ADD SiYuanSongTiRegular.tar.gz /usr/share/fonts
RUN cd /tmp/en-US/DEBS/ && \
dpkg -i *.deb && \
cd desktop-integration && \
dpkg -i openoffice4.1-debian-menus*.deb && \
apt-get -y update && \
apt-get -y upgrade && \
apt-get install --allow-downgrades -y libxext6 procps xserver-xorg-legacy x-window-system-core && \
rm -rf /tmp/en-US && \
apt-get update && \
apt-get upgrade && \
#apt-get install --allow-downgrades -y ttf-mscorefonts-installer
apt-get install --allow-downgrades -y fonts-dejavu-core fonts-wqy-zenhei && \
#cd /usr/share/fonts && \
#chmod -R 755 /usr/share/fonts && \
#mkfontscale && \
#mkfontdir && \
#fc-cache -fv && \
apt-get clean && \
apt-get autoclean && \
apt-get update && \
apt-get upgrade 

解析:

  1. 基于一个JDK镜像adoptopenjdk/openjdk11:debian-slim,可以去看docker hub上这个jdk镜像的步骤,可以发现安装了JDK及fontconfig等
FROM adoptopenjdk/openjdk11:debian-slim
  1. 设置镜像标签
LABEL maintainer=Celine.Z
  1. 将OpenOffice4的DEB安装包添加至/tmp目录下。
    注意:我是通过将包下载至本地,和Dockfile文件放置在一个目录来构建的,也可以通过直接文件里面命令下载的方式。ADD命令有自动解压的效果。
ADD Apache_OpenOffice_4.1.8_Linux_x86-64_install-deb_en-US.tar.gz /tmp/
  1. 添加自己的中文字体,此方法我最终没有使用,故注释掉,需要安装自己字体的可以使用。
#ADD SiYuanSongTiRegular.tar.gz /usr/share/fonts
  1. 运行RUN命令

  切换至/tmp/en-US/DEBS/和/tmp/en-US/DEBS/desktop-integration/目录,将下面的deb包用dpkg命令安装

RUN cd /tmp/en-US/DEBS/ && \
dpkg -i *.deb && \
cd desktop-integration && \
dpkg -i openoffice4.1-debian-menus*.deb && \

  运行apt-get命令前最好执行一下两命令,否则会出现找不到包的情况; -y是如果有更新,需输入y同意,在dockerfile脚本中最好添一个-y,否则脚本文件执行可能报错。

apt-get -y update && \
apt-get -y upgrade && \

     a. 安装libxext6,否则报debian error while loading shared libraries: libXext.so.6错误。
  b. 安装procps, 否则代码使用openoffice4时报pid not found错误,而进入容器则发现能启动。通过trace打印,发现报 Command Error: /bin/sh: 1: /bin/ps: not found导致。
  c. 安装xserver-xorg-legacy为啥不记得了,这个包好像用于远程调用。
  d. 安装 x-window-system-core,否则启动会报no suitable windowing system found, exiting。

apt-get install --allow-downgrades -y libxext6 procps xserver-xorg-legacy x-window-system-core && \

   删除OpenOffice4解压缩后的包

rm -rf /tmp/en-US && \

   更新

apt-get update && \
apt-get upgrade && \

   安装中(wqy-zenhei,文泉驿正黑)英(dejavu)文字体

apt-get install --allow-downgrades -y fonts-dejavu-core fonts-wqy-zenhei && \

  手动安装字体,出现mkfontscale,mkfontdir 命令找不着时,安装ttf-mscorefonts-installer。注意先要执行上一步的update操作。(我实际未用,故命令注释掉)

#apt-get install --allow-downgrades -y ttf-mscorefonts-installer

  若要手动安装字体,切换至fonts目录,并修改目录权限,生成font.scale,font.dir文件,刷新字体列表。(我实际未用,故命令注释掉)

#cd /usr/share/fonts && \
#chmod -R 755 /usr/share/fonts && \
#mkfontscale && \
#mkfontdir && \
#fc-cache -fv && \

   清除安装过程中的残余,并更新

apt-get clean && \
apt-get autoclean && \
apt-get update && \
apt-get upgrade 
  1. 另外由于我这个包是打算和程序一起使用的,故没有EXPOSE端口与ENTRYRPOINT或CMD设置启动执行命令的命令。可以自己设置,如:
EXPOSE 8100
ENTRYPOINT ["/opt/openoffice4/program/soffice", "-headless" ,"-nofirststartwizard", "-accept=\"socket,host=0.0.0.0,port=8100;urp;\""]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值