Dockerfile制作tomcat镜像,解决404问题

Dockerfile制作tomcat镜像


首先准备好JDK和tomcat的压缩包tar.gz文件

编写Dockerfile文件

官方命名Dockerfile,build会自动寻找这个文件,就不需要-f指定。

vim Dockerfile
FROM centos
MAINTAINER lieonchou<email_address>
COPY readme.txt /usr/local/readme.txt #将所写的readme.txt文件复制到容器内部
ADD  jdk-8u11-linux-x64.tar.gz  /usr/local/      #添加文件,解压路径
ADD apache-tomcat-9.0.22.tar.gz /usr/local       #添加文件,解压路径
ENV MYPATH /usr/local
WORKDIR   $MYPATH
 ENV JAVA_HOME /usr/local/jdk1.8.0_11
 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22
 ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.22
 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out

构建镜像

docker build -t diytomcat .    #最后的点表示当前目录

查看镜像

docker images

Dockerfile制作tomcat镜像,解决404问题

运行镜像

docker run -d -p 9090:8080 --name lieontomcat -v /home/lieon/build/tomcat/test:/urs/local/apache-tomcat-9.0.22/webapps/test -v /home/lieon/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.22/logs diytomcat

进入容器

docker exec -it [容器id] /bin/bash
pwd                 #查看默认路径

外网访问

ip:9090

本地测试

进入挂载的文件夹test

cd /home/lieon/build/tomcat/test
ls         #查看目录

在文件中进行操作

mkdir WEB-INF    #创建文件夹
vim   web.xml       #测试网站需要添加此文件,不同的tomcat有不同的配置
vim  index.jsp      

创建xml 配置文件

在tomcat的webapps/ROOT/WEB-INF中,如下图所示

<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
                      https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
  version="5.0"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>

</web-app>

创建jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello,Lieon</title>
</head>
<body>
Hello World!<br/>
<%
System.out.println("------mytestweblogs------");
%>
</body>
</html>

查看网页

ip:9090/test

这里会有一个问题,访问时出现404错误,这是因为我们将index.jsp文件放在了WEB-INF中,/WEB-INF是访问受限制的,jsphtml文件不能放在这个文件夹下。

Dockerfile制作tomcat镜像,解决404问题

修改index.jsp文件存放的的路径

将其直接放在test目录下,再次打开网页就成功了。
Dockerfile制作tomcat镜像,解决404问题

查看日志

cd     /home/lieon/tomcatlogs   #进入日志目录
ls       # 列出目录找到catalina.out文件,并输出

Dockerfile制作tomcat镜像,解决404问题

cat catalina.out      #输出日志

每访问一次网页都会增加一条记录。
Dockerfile制作tomcat镜像,解决404问题

上一篇:搭建spring mvc 实现select类似操作以及出现的404错误解决办法


下一篇:牛客_剑指offer_重建二叉树,再后续遍历_递归思想_分两端