Dockerfile构建java环境镜像,jdk+tomcat+activemq

使用的是centos7构建的java运行环境镜像,都是将稳定版本的jdk和工具一起打包在一个镜像,没有通过yum安装

  • Dockerfile文件内容
# 指定基础镜像
FROM centos:7

# MAINTAINER 指明了当前 Dockerfile 的维护者信息,但是这个指令即将被废弃(deprecated),取而代之使用 LABEL 指令,一般把多个键值对放到一条 LABEL 指令里面,以减少镜像的层数
LABEL maintainer="java runtime environment <[email protected]>"

# 指定容器中的当前用户
USER root

# ENV 一般把多个键值对放到一条 ENV 指令里面,以减少镜像的层数
ENV  JAVA_HOME=/usr/java/jdk1.7.0_79 \
	 CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib \
     PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/binsource

# 复制本地文件到镜像里面
COPY jdk-7u79-linux-x64.rpm /usr/local
COPY docker-entrypoint.sh /usr/local/bin
COPY apache-activemq-5.10.0 /data/apache-activemq-5.10.0
ADD  wkhtmltox-0.12.3_linux-generic-amd64.tar.xz /usr/bin
COPY tomcat6 /data/tomcat6

# RUN 最好把尽可能多的相关命令放到一条 RUN 指令当中,使用 && 进行拼接,可以减少镜像的层数和大小
RUN chmod +x /usr/local/jdk-7u79-linux-x64.rpm \
    && rpm  -ivh  /usr/local/jdk-7u79-linux-x64.rpm \
    && chmod 755 /usr/local/bin/docker-entrypoint.sh \
    && cp /usr/bin/wkhtmltox/bin/wkhtmltopdf  /usr/bin \
    && chmod +x /usr/bin/wkhtmltopdf 
   
# 暴露多端口    
EXPOSE 18162 8086

# 容器启动的入口点
ENTRYPOINT ["docker-entrypoint.sh"]

  • 执行shell脚本内容
#!/bin/bash

	chmod a+x /data/apache-activemq-5.10.0/bin/activemq 
    cd /data/apache-activemq-5.10.0/bin && ./activemq  setup  /root/.activemqrc 
    chmod 600 /root/.activemqrc 
    ./activemq  start
    
tail -f /dev/null

猜你喜欢

转载自blog.csdn.net/marke_huang/article/details/83011210