Docker一步步构建Tomcat思路


和往常一样,我们仍然使用centos镜像进行自己配置和安装,Dockerfile如下:

I. Dockerfile

其内容就是下载,解压,修改一些配置文件和tomcat-users登陆密码等(下载路径自行修改)

FROM centos
MAINTAINER wwww.linuxea.com
ENV TMDD /data/docker/
ENV TMJDK=jdk-8u102-linux-x64.rpm
ENV TMAPA=apache-tomcat-8.5.4
RUN yum install -y http://mirrors.ds.com/JDK/$TMJDK && mkdir $TMDD -p && cd $TMDD \
  && curl -s http://mirrors.ds.com/tar%E5%8C%85/${TMAPA}.tar.gz -o /data/docker/${TMAPA}.tar.gz \
  && tar xf ${TMAPA}.tar.gz && rm -rf ${TMAPA}.tar.gz \
  && mv /data/docker/${TMAPA} /data/docker/tomcat \
#  && rm -rf /data/docker/tomcat/webapps/* \
  && sed -i '/allow/ s/$/-->/'  /data/docker/tomcat/webapps/manager/META-INF/context.xml \
  && sed -i '/className/ s/^/<!--/' /data/docker/tomcat/webapps/manager/META-INF/context.xml \
  && sed -i '/allow/ s/$/-->/' /data/docker/tomcat/webapps/host-manager/META-INF/context.xml \
  && sed -i '/className/ s/^/<!--/' /data/docker/tomcat/webapps/host-manager/META-INF/context.xml \
  && rm -rf /data/docker/tomcat/conf/tomcat-users.xml \
  && curl -Lks4 https://raw.githubusercontent.com/LinuxEA-Mark/docker-tomcat/master/tomcat-users.xml -o /data/docker/tomcat/conf/tomcat-users.xml \
  && mkdir /opt/{app,config} && mv /data/docker/tomcat/webapps/* /opt/app  && mv /data/docker/tomcat/conf/* /opt/config \
  && curl -Lks4 https://raw.githubusercontent.com/LinuxEA-Mark/docker-tomcat/master/judgment.sh  -o /judgment.sh \
  && chmod +x /judgment.sh
ENTRYPOINT ["/judgment.sh"]

II. 启动脚本

脚本内容大致判断如果是jar包这使用jar包方式启动,否则就使用statup.sh启动
请注意:
我的tomcat是配置安装在/data/docker中,在docker镜像build时,分别将webapp的内容移动到新创建的/opt/app下和conf/下的内容移动到/opt/config下,然而我在启动脚本中会判断,在启动时将文件移动到安装目录,因为我在docker-compose中要挂载目录到容器中,并且将容器内配置文件挂载出来,通过两次mv移动解决

#!/bin/bash
#########################################################################
# File Name: 1.sh
# Author: www.linuxea.com
# Email: usertzc@gmail.com
# Version:  
# Created Time: 2016年12月19日 星期一 15时17分30秒
#########################################################################\
    [ -f /data/docker/tomcat/webapps/host-manager ] || mv /opt/app/* /data/docker/tomcat/webapps/
    [ -f /data/docker/tomcat/conf/server.xml ] ||  mv /opt/config/* /data/docker/tomcat/conf/
if [ `ls /data/docker/tomcat/|grep *.jar` ];then
    tail -f /etc/issue
    cd /data/docker/ && nohup java -jar *.jar --logging.file=./logback.xml > /dev/null 2>&1 &
else
    /data/docker/tomcat/bin/startup.sh start
    tail -f /etc/issue
fi

III. docker-compose.yaml

version: '2'
services:
  tomcat:
    build:
      context: https://raw.githubusercontent.com/LinuxEA-Mark/docker-tomcat/master/Dockerfile
    container_name: 8.5.4
    restart: always
    network_mode: "host"
    volumes:
     - /data/docker/tomcat/webapps/:/data/docker/tomcat/webapps/
     - /data/docker/tomcat/conf:/data/docker/tomcat/conf

IV. 快速部署

快速部署可参考我的git上的:

  • intenet install apache-tomcat 8.5.9 jdk use jdk-8u111
curl -Lks4 https://raw.githubusercontent.com/LinuxEA-Mark/docker-tomcat/master/intenet_create_docker_tomcat.sh |bash

0 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2017-04-24分类: Docker

标签: docker

发表评论