一、镜像制作前的准备
1)下载openoffice安装包,下面是下载路径,我选择的是4.1.13的版本
Apache OpenOffice - Official Download
2)服务器上新建文件夹,并cd到路径下
mkdir -p /usr/local/openoffice && cd /usr/local/openoffice
3) 上传openoffice安装包到openoffice路径下,我使用的是Finalshell可视化工具连接的linux系统,感兴趣的可以去下载使用
3)上传字体,解决导出文件乱码问题
新建一个fonts文件夹用于存放字体:
mkdir fonts
我上传了两种字体,简体和繁体
4)拉取jdk镜像
docker pull openjdk:8
5) 拉取centos7镜像,需要以这个为基础镜像制作openoffice
docker pull centos:7
二、镜像开始制作
1)创建Dockerfile文件
vi Dockerfile
FROM centos:7
# 更新apt并安装必要工具和依赖
RUN yum update -y && yum install -y tar wget fontconfig mkfontscale xorg-x11-server-Xvfb liberation-serif-fonts
# 将安装包添加至容器内tmp目录
ADD Apache_OpenOffice_4.1.15_Linux_x86-64_install-rpm_zh-CN.tar.gz /tmp/
# 安装openoffice
RUN cd /tmp && \
yum install -y zh-CN/RPMS/*.rpm && \
yum clean all
# 将字体拷贝到/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 && \
# 安装字体和“X Window System”
yum install mkfontscale fontconfig -y && \
yum groupinstall "X Window System" -y && \
mkfontscale && \
mkfontdir && \
fc-cache -fv
# 暴露openfile的8100接口
EXPOSE 8100
# 拷贝启动脚本,并执行启动openoffice
CMD /opt/openoffice4/program/soffice -headless -nofirststartwizard -accept="socket,host=0.0.0.0,port=8100;urp;"
2)制作镜像文件
docker build -t openoffice:4.1.13 .
-t 后面这个openoffice:4.1.13代表标签名,可以随便起一个名称就好
三、启动服务
我没有挂载什么数据卷,所以直接启动就可以了
docker run -d --name openOffice -p 8100:8100 openoffice:4.1.13
-p 8100:8100:可选,映射8100到宿主机。此处可不暴露端口,后续将直接关联到java项目中
如果暴露端口则可以直接通过ip来连接openOffice