创建 dockerfile
img_centos_java_libreoffice
FROM centos:centos7
ADD jdk1.8.0_181.tar.gz /
ADD LibreOffice_6.4.6_Linux_x86-64_rpm.tar.gz /
ADD LibreOffice_6.4.6_Linux_x86-64_rpm_sdk.tar.gz /
ADD LibreOffice_6.4.6_Linux_x86-64_rpm_langpack_zh-CN.tar.gz /
CMD /bin/bash
ADD 只能读取相对路径的源文件,
镜像0.1 初始
> docker build -f img_centos_java_libreoffice -t img_centos_java_libreoffice:0.1 .
启动容器 jhs_1_setup
> docker run -it -d --net=host --name jhs_1_setup img_centos_java_libreoffice:0.1
> docker exec -it jhs_1_setup /bin/bash
安装jdk
> mkdir /usr/java
> mv jdk1.8.0_181/ /usr/java
> vi /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_181
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
> . /etc/profile
> java -version
镜像0.2 with_java
> docker commit -a "jhs" -m "with_java" jhs_1_setup img_centos_java_libreoffice:0.2
启动容器 jhs_2_with_java
> docker run -it -d --net=host --name jhs_2_with_java img_centos_java_libreoffice:0.2
> docker exec -it jhs_2_with_java /bin/bash
安装libreoffice
> cd RPMS/
> yum localinstall *.rpm
> vi /etc/profile
export LibreOffice_PATH=/opt/libreoffice6.4/program
export PATH=$LibreOffice_PATH:$PATH
> . /etc/profile
> soffice --help
缺少依赖:
yum install ibus
镜像0.3 with_java_libreoffice
> docker commit -a "jhs" -m "with_java_libreoffice" jhs_2_with_java img_centos_java_libreoffice:0.3`
启动脚本
> docker run -it -d --net=host --name jhs_3_with_java_libreoffice img_centos_java_libreoffice:0.3
> docker exec -it jhs_3_with_java_libreoffice /bin/bash
[root@s42 /]# . /etc/profile
[root@s42 /]# java -version
创建dockerfile : img_template
FROM img_centos_java_libreoffice:0.3
ENV JAVA_HOME /usr/java/jdk1.8.0_181
ENV JRE_HOME $JAVA_HOME/jre
ENV PATH $PATH:$JAVA_HOME/bin:$JRE_HOME/bin
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
ENV LibreOffice_PATH /opt/libreoffice6.4/program
ENV PATH $LibreOffice_PATH:$PATH
# RUN ["source", "/etc/profile"]
# RUN ["java", "-","version"]
# RUN ["soffice", "--","version"]
CMD /bin/bash
镜像4 template
构建镜像
> docker build -f img_template -t jhs_4_template:0.1 .
启动脚本
> docker run -it -d --net=host --name jhs_4_template jhs_4_template:0.1
> docker exec -it jhs_4_template /bin/bash
[root@s42 /]# . /etc/profile
[root@s42 /]# java -version
## 安装编码集
[root@s42 /]# localedef -v -c -i en_US -f UTF-8 C.UTF-8
镜像5 template_c_utf8
> docker commit -a "jhs" -m "template_c_utf8" jhs_4_template img_template_c_utf8:0.1
镜像6 template_c_utf8_env
> vim img_template2
FROM img_template_c_utf8:0.1
ENV LANG C.UTF-8
ENV JAVA_HOME /usr/java/jdk1.8.0_181
ENV JRE_HOME $JAVA_HOME/jre
ENV PATH $PATH:$JAVA_HOME/bin:$JRE_HOME/bin
ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
ENV LibreOffice_PATH /opt/libreoffice6.4/program
ENV PATH $LibreOffice_PATH:$PATH
CMD /bin/bash
构建镜像
> docker build -f img_template2 -t img_template_2:0.1 .
镜像5 img_template_xj_gec_service
FROM img_template_2:0.1
ENTRYPOINT ["java","-Xms512m","-Xmx512m","-jar","-Dlogging.file=/app/logs/gecXjService.log","-Duser.timezone=GMT+8","/app/gecService-1.0-SNAPSHOT.jar","--server.port=8076","&"]
EXPOSE 8076
构建镜像
> docker build -f img_template_xj_gec_service -t img_template_xj_gec_service:0.1 .
创建容器+启动应用服务
> docker run -it -d --net=host -v /home/docker/versions:/app/ -v /home/docker/files:/files/ --name jhs_gec_xj_service --privileged=true img_template_xj_gec_service:0.1
> docker exec -it jhs_gec_xj_service /bin/bash