基于docker的tomcat基础镜像及应用部署

Dockerfile构建一个tomcat镜像

  • 构建基于java环境的基础镜像
wget https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u282b08.tar.gz
mv OpenJDK8U-jdk_x64_linux_hotspot_8u282b08.tar.gz jdk8.tar.gz
  • 基于java8的Dockerfile
FROM centos
WORKDIR /usr/
ADD jdk8.tar.gz /usr/
RUN mv jdk8u282-b08 jdk
#设置java环境变量
ENV JAVA_HOME=/usr/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
  • java8基础镜像打包
docker build -f /root/manifest/java8/Dockerfile -t java8_base:v1 .
  • 打tomcat镜像

    • Dockerfile
    FROM mini-java8:v1
    ENV SERVER_DIR=/data/server/
    RUN mkdir -p $SERVER_DIR
    WORKDIR $SERVER_DIR
    ADD apache-tomcat-8.5.64.tar.gz .
    WORKDIR $SERVER_DIR/apache-tomcat-8.5.64/bin
    CMD ["./catalina.sh", "run"]
    
    • 构建/删除镜像脚本
    docker build -t mytomcat:v1 .
    docker run -d $(docker images|grep mytomcat|awk '{print $3}')
    docker stop $(docker images|grep mytomcat|awk '{print $2}')
    docker rmi -f $(docker images|grep mytomcat|awk '{print $3}')
    

镜像信息


从图中可以看到,java基础环境镜像大小以及达到600+M,现在需要适当的减小镜像大小.

以下为最精简的java环境

# AlpineLinux open jre 8
FROM alpine:latest

# Install cURL
RUN echo -e "https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/main\n\
https://mirror.tuna.tsinghua.edu.cn/alpine/latest-stable/community" > /etc/apk/repositories

RUN apk --update add curl bash openjdk8-jre-base && \
rm -rf /var/cache/apk/*

# Set environment
ENV JAVA_HOME /usr/lib/jvm/default-jvm
ENV PATH ${PATH}:${JAVA_HOME}/bin

  • java环境dockerfile运行指令
docker build -t mini-java8:v1 .
  • 常用命令搜集
docker stop $(docker ps |grep $(docker images|grep mytomcat|awk '{print $3}')|awk '{print $1}')
docker rmi -f $(docker images|grep mytomcat|awk '{print $3}')
docker rmi -f $(docker images|grep mytomcat|awk '{print $3}') 
docker build -t mytomcat:v1 .
docker run -d $(docker images|grep mytomcat|awk '{print $3}')
docker exec -it $(docker ps |grep $(docker images|grep mytomcat|awk '{print $3}')|awk '{print $1}') /bin/sh
  • 基于 mini-java8:v1 的tomcat基础镜像
FROM mini-java8:v1
ENV SERVER_DIR=/data/server/tomcat
RUN mkdir -p $SERVER_DIR
WORKDIR $SERVER_DIR
# 从本地复制解压包至镜像中
COPY apache-tomcat-8.5.64 .
#COPY apache-tomcat-8.5.64.tar.gz .
#RUN tar zxvf tomcat.tar.gz -C $SERVER_DIR
WORKDIR $SERVER_DIR/bin
# 依赖此镜像的子镜像执行
ONBUILD CMD ["./catalina.sh", "run"]

部署应用

  • dockerfile
FROM tomcat_base:v1
MAINTAINER niejian9001@163.com
WORKDIR /data/server/tomcat/webapps/
#RUN mv $(pwd)/target/sso-demo.war $(pwd)/target/app.war
COPY ./target/ssm-demo.war .
RUN rm -rf ROOT* && \
        mv $(pwd)/ssm-demo.war ROOT.war
WORKDIR /data/server/tomcat/bin
EXPOSE 8080
CMD ["./catalina.sh", "run"]
#CMD ./shutdown.sh && ./startup.sh
  • 打包镜像
# 在docker目录上执行
docker build -f /data/ssm-demo/docker/Dockerfile -t ssm-demo:v1 .
posted @ 2021-03-18 10:34  Ronaldo7  阅读(216)  评论(0编辑  收藏  举报