• 分层构建Tomcat镜像


    分层构建Tomcat镜像

    #创建工作目录
    docker pull centos
    mkdir -pv /opt/dockerfile/{web/nginx,tomcat,jdk,apache},system/{centos,ubantu,alpine,debian}
    

    自定义centos基础镜像

    #进入工作目录
    cd /opt/dockerfile/system/centos
    #编写dockerfile
    vim Dockerfile
    #Centos 7.7 base image
    FROM Centos:7.7.1908
    
    LABEL miaosen 952726682@qq.com
    
    RUN yum install -y epel-release && yum install -y vim wget tree lrzsz gcc gcc-c++ automake proc proc-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop
    
    RUN groupadd www -g 2020 && useradd www -u 2020 -g www
    #打包镜像
    docker build -t centos—base:7.7.1908 .
    

    编写构建脚本

    vim docker_build.sh
    #!/bin/bash
    docker build -t centos—base:7.7.1908 .
    

    自定义jdk镜像

    #进入工作目录
    cd /opt/dockerfile/web/jdk
    mkdir jdk8-8u212
    cd jdk8-8u212
    #编写dockerfile
    vim Dockerfile
    #JDK Base image
    FROM centos—base:7.7.1908
    
    ADD jdk-8u212-linux-x64.tar.gz /usr/local/src/
    RUN lb -sv /usr/local/src/jdk1.8.0_212 /usr/local/src
    ADD profile /etc/profile
    
    #如果未进行ENV环境设置,会导致docker内用户无法使用java
    ENV JAVA_HOME /usr/local/jdk
    ENV JRE_HOME $JAVA_HOME/jre
    ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
    ENV PATH $PATH:$JAVA_HOME/bin
    
    RUN rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    

    编写profile文件

    #添加java环境
    vim profile
    ......
    export JAVA_HOME=/usr/local/jdk/
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    #将profile拷贝到dockerfile同级目录
    

    编写构建脚本

    vim docker_build.sh
    #!/bin/bash
    docker build -t centos-jdk:8u241 .
    

    文件目录

    tree
    .
    ├── Dockerfile
    ├── jdk-8u212-linux-x64.tar.gz
    ├── docker_build.sh
    └── profile
    

    自定义Tomcat镜像

    vim Dockerfile
    FROM centos-jdk:8u241
    
    ADD apache-tomcat-8.5.51.tar.gz /apps
    
    RUN ln -sv /apps/apache-tomcat-8.5.51.tar.gz /apps/tomcat
    

    编写构建脚本

    vim docker_build.sh
    #!/bin/bash
    docker build -t centos-tomcat:8.5.51 .
    #将apache-tomcat-8.5.51.tar.gz拷贝到dockerfile同级目录
    

    测试镜像

    docker run --rm -it -p 8080:8080 centos-tomcat:8.5.51 bash
    

    自定义业务镜像

    mkdir tomcat-app1
    vim Dockerfile
    FROM centos-tomcat:8.5.51
    
    ADD server.xml /apps/tomcat/conf/server.xml
    ADD catalina.sh /apps/tomcat/bin/catalina.sh
    ADD gms.tar.gz /data/tomcat/webapps
    ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh
    
    RUN chown www.www -R /apps
    
    EXPOSE 8080 8005 8009
    
    CMD ["/app/tomcat/bin/run_tomcat.sh"]
    
    

    编写测试文件

    mkdir gms
    cd gms
    echo "hello dockerfile" > index.html
    cd ..
    tar czvf gms.tar.gz gms/*
    

    修改tomcat配置文件

    #建议修改server.xml;关闭自动解压、自动部署、修改路径
    ......
    <Host name="localhost"  appBase="/data/tomcat/webapps"  unpackWARs="false" autoDeploy="false">
    ......
    

    编写run_tomcat脚本

    #!/bin/bash
    echo "172.31.7.248 dns.gms.local" >> /etc/hosts
    echo "nameserver 233.5.5.5" >> /etc/resolv.conf
    
    su - www -c "/app/tomcat/bin/catalina.sh start"
    su - www -c "tail -f /etc/hosts"
    
    #为脚本添加可执行权限
    chmod +x run_tomcat.sh
    

    编写构建脚本

    vim docker_build.sh
    #!/bin/bash
    docker build -t tomcat-web:app1 .
    #将apache-tomcat-8.5.51.tar.gz拷贝到dockerfile同级目录
    

    检查容器

    docker ps
    docker exec -it    bash
    ss -ntl
    
  • 相关阅读:
    字符串拼接练习
    java数字字符的全半角转化
    mysql 的group by 满足的规则要求:
    从指定字符串获取n个随机数
    jQuery去除空格的$.trim()
    mysql里的位运算小结
    sql的case 用法
    泛型之元组示例
    jQuery里的replaceAll和replaceWith
    根据索引条件查询结果与原表关联的查询
  • 原文地址:https://www.cnblogs.com/Gmiaomiao/p/13249572.html
Copyright © 2020-2023  润新知