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

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

问题留档

1、场景描述

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

FROM centos:7
MAINTAINER zhuhuacong<zhc_yes@126.com>

# 添加必备的文件 会自动解压
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. 提示文件无法打开

    image-20230906161537491

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

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

3、解决方法

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

FROM centos:7
MAINTAINER zhuhuacong<zhc_yes@126.com>

# 安装必要的软件
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<zhc_yes@126.com>

# 添加必备的文件 会自动解压
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"]

—— 失败 报错如下

image-20230906164201396

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

FROM centos:7
MAINTAINER zhuhuacong<zhc_yes@126.com>

# 安装必要的软件
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

——也失败了

image-20230906164636334

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xcong_Zhu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值