【问题总结】 记 一次dockerFile构建报错

写在前面, 其实是一个比较摸不着脑袋的bug,记录一下解决的过程,作为备忘录

问题留档

1、场景描述

在尝试使用dockefile构建一个tomcat镜像,内容如下,构建正常通过,但是容器启动失败

FROM centos:7
MAINTAINER zhuhuacong

# 添加必备的文件 会自动解压
ADD apache-tomcat-9.0.80.tar.gz /usr/local/
ADD jdk-8u202-linux-i586.tar.gz /usr/local/


# 切换到工作路径
ENV MYPATH /usr/local
WORKDIR $MYPATH
# 添加环境变量配置
ENV JAVA_HOME /usr/local/jdk1.8.0_202
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.80
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.80
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin


# 端口放开
EXPOSE 8080

# 启动tomcat - 执行指令
CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/bin/logs/catalina.out

2、遇到的问题描述

  1. tocmat解压失败

    检查应该在解压路径后添加一个/作为结尾

    不对,发现是映射路径的问题。。。

  2. 提示文件无法打开

    【问题总结】 记 一次dockerFile构建报错_第1张图片

    查看内容日志已经存在,但是报错无法读取?先隐藏

  3. 隐藏掉日志真是语句后,发现tomat会在启动后,容器就退出了

3、解决方法

ABA解决法,从网上找到一个dockerfile然后自己进行了修改,最终可以运行的版本如下:

FROM centos:7
MAINTAINER zhuhuacong

# 安装必要的软件
RUN  yum install -y java-1.8.0-openjdk-devel 

# 下载并解压Tomcat
ADD apache-tomcat-9.0.80.tar.gz /usr/local/

# 暴露Tomcat端口
EXPOSE 8080

# 启动Tomcat
CMD ["/usr/local/apache-tomcat-9.0.80/bin/catalina.sh", "run"]

可以发现几个不同的地方

  1. 直接从yum下载的jdk
  2. 启动tomcat的指令不同。

验证测试,结果就是jdk和tomcat指令都有问题

归因分析:

  • jdk下载了x86版本,并不适用于x64的系统
  • tomcat正确的启动指令应该是运行catalina.sh run

在这个基础上,修改原dockerfile尝试

第一次修改tomcat指令:

# 新版
FROM centos:7
MAINTAINER zhuhuacong

# 添加必备的文件 会自动解压
ADD apache-tomcat-9.0.80.tar.gz /usr/local/
ADD jdk-8u202-linux-x64.tar.gz /usr/local/


# 切换到工作路径
ENV MYPATH /usr/local
WORKDIR $MYPATH
# 添加环境变量配置
ENV JAVA_HOME /usr/local/jdk1.8.0_202
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.80
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.80
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin


# 端口放开
EXPOSE 8080

# 启动Tomcat
CMD ["/usr/local/apache-tomcat-9.0.80/bin/catalina.sh", "run"]

—— 失败 报错如下

【问题总结】 记 一次dockerFile构建报错_第2张图片

第二次只修改jdk的安装方式3

FROM centos:7
MAINTAINER zhuhuacong

# 安装必要的软件
RUN  yum install -y java-1.8.0-openjdk-devel 

# 下载并解压Tomcat
ADD apache-tomcat-9.0.80.tar.gz /usr/local/

# 暴露Tomcat端口
EXPOSE 8080

# 启动Tomcat
CMD  /usr/local/apache-tomcat-9.0.80bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.80/bin/logs/catalina.out

——也失败了

【问题总结】 记 一次dockerFile构建报错_第3张图片

你可能感兴趣的:(问题总结,备忘录,docker,java,tomcat)