Docker一步步构建Tomcat思路

2023年 7月 16日 81.6k 0

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

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"]

启动脚本

脚本内容大致判断如果是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

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

快速部署

快速部署可参考我的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

    请输入图片描述

相关文章

LeaferJS 1.0 重磅发布:强悍的前端 Canvas 渲染引擎
10分钟搞定支持通配符的永久有效免费HTTPS证书
300 多个 Microsoft Excel 快捷方式
一步步配置基于kubeadmin的kubevip高可用
istio全链路传递cookie和header灰度
REST Web 服务版本控制

发布评论