JDK8 + FFMPEG + Libreoffice镜像的制作
JDK8整合FFMPEG
此镜像是根据jrottenberg/ffmpeg:centos镜像做为基础镜像,增加了jdk8的支持
FROM jrottenberg/ffmpeg:centos
MAINTAINER ffmpeg + jdk
ADD jdk-8u231-linux-x64.tar.gz /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_231
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
WORKDIR /usr/local/oas/
docker build -t ffmpeg-jdk8:1.0.0 .
构建基于ffmpeg+jdk8的libreoffice
windows字体包就是在Windows下C:\Windows\Fonts中,搜索“简体”后出来的字体,然后把它们统一打包,我用的7zip,先压缩成tar,再压缩成gz。
Libreoffice下载地址:
https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/7.0.6/rpm/x86_64/
打开地址后,使用Chrome浏览器可以直接用Ctrl + F 进行检索我所使用的版本,直接搜索LibreOffice_7.0.6_Linux_x86-64_rpm.tar.gz和LibreOffice_7.0.6_Linux_x86-64_rpm_langpack_zh,然后去下载吧。
最后再说一句,在我提供的地址中,已经有了制作镜像所需要的包,认真找找。
FROM ffmpeg-jdk8:1.0.0
#以下设置中文语言环境与修改时区
ENV LANG=zh_CN.UTF-8 \
LANGUAGE=zh_CN:zh \
LC_ALL=zh_CN.UTF-8
RUN yum update -y && \
yum reinstall -y glibc-common && \
yum install -y telnet net-tools && \
yum clean all && \
rm -rf /tmp/* rm -rf /var/cache/yum/* && \
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#加入windows字体包
ADD fonts.tar.gz /usr/share/fonts/
ADD docker-entrypoint.sh /usr/
#将下载好的包解压到相应文件下
ADD LibreOffice_7.0.6_Linux_x86-64_rpm.tar.gz /home/
ADD LibreOffice_7.0.6_Linux_x86-64_rpm_langpack_zh-CN.tar.gz /usr/
#执行安装
RUN cd /home/LibreOffice_7.0.6.2_Linux_x86-64_rpm/RPMS/ && \
yum localinstall *.rpm -y && \
cd /usr/LibreOffice_7.0.6.2_Linux_x86-64_rpm_langpack_zh-CN/RPMS/ && \
yum localinstall *.rpm -y && \
yum install ibus -y && \
cd /usr/share/fonts/ && \
chmod -R 755 /usr/share/fonts && \
yum install mkfontscale -y && \
mkfontscale && \
yum install fontconfig -y && \
mkfontdir && \
fc-cache -fv && \
yum clean all
ENTRYPOINT ["/usr/docker-entrypoint.sh"]
docker-entrypoint.sh中是启动libreoffice的命令,我用的时libreoffice7,不同的版本,需要进入对应的文件夹中哈!
/opt/libreoffice7.0/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
docker build -t libreoffice:1.0.0 .
至此,一个基于JDK8+ffmpeg的libreoffice镜像就制作完成。
制作springboot项目镜像
springboot项目中的application.yml文件,我们希望能够映射出来,方便修改。所以springboot项目的镜像也是按照此目标来实现的。
目录结构
- conf文件夹中保存的是application.yml文件
- Dockerfile是制作镜像文件
- dockertest-1.0-SNAPSHOT.jar是springboot项目包
编辑Dockerfile文件
FROM java:8
ENV DIRPATH /usr/local/test
WORKDIR $DIRPATH
ADD ./config/application.yml ./config/application.yml
ADD dockertest-1.0-SNAPSHOT.jar ./lib/docker.jar
VOLUME $DIRPATH/config
EXPOSE 16014
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom",\
"-jar",\
"-Dspring.config.location=/usr/local/test/config/application.yml",\
"/usr/local/test/lib/docker.jar"]
通过-Dspring.config.location参数指定application.yml的路径。
制作镜像
docker build -t springboot-test:1.0.0 .
启动springboot镜像
docker run -d --name springboot-service -p 16014:16014 -v /data/docker-file/docker-test/conf:/usr/local/test/config springboot-test:1.0.0
具体的映射路径,请以实际需求为准