Docker部署SpringMVC+Jsp项目——Tomcat篇(二)

docker部署JSP

注意:

  1. 服务器的tomcat版本切记要和本地开发使用的版本保持一致,否则很可能出现部署后无法访问问题。

第一步:打包war包

  1. 创建maven项目

  2. 修改pom.xml文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.zonesion.layout</groupId>
    	<artifactId>zcloud-layout</artifactId>
    	<packaging>war</packaging>   # 将这里的jar修改成war
    
    1. 移除模块内自带的tomcat容器(这一步是springboot项目的操作,不是springboot项目可以忽略)

      img

    2. 添加servelt依赖

    <dependency>
        <groupId>javax.servlet</groupId>
    	<artifactId>javax.servlet-api</artifactId>
    	<version>3.1.0</version>
    </dependency>
    
    1. 给项目加别名,在build标签下增加finalName,就是项目名了,如果不加,项目名就是你的artifactId-version,生成的war包名称也是artifactId-version.war,浏览器访问的时候项目名字太长了。
    	<build>
    		<finalName>zcloud-layout</finalName>
    	</build>
    
    1. 使用mvn clean 打包成war包

第二步:tomcat安装

安装步骤

  1. docker pull tomcat:8.5.57
    1. 直接运行(本地没有镜像会直接下载):docker run -it --rm tomcat:8.5.57
      1. 之前启动没有–rm,启动都是容器后台,容器退出后还可以查到。 而 docker run -it --rm tomcat:8.5.57推出容器后,即把docker容器删除,用于测试使用。通常不使用。
  2. docker run -d --name tomcat01 -p 8080:8080 tomcat:8.5.57
  3. curl localhost:8080
    1. 发现404
    2. 原因:我们下载的tomcat容器是经过缩减过的,下载的容器只保障最基本的运行。
      1. 原来是在docker安装的tomcat在8.0.52版本之后,默认移除了默认显示的页面(webapps下的文件是空的),我们可以安装8.0.51版本.
    3. 解决方法:
      1. 进入容器内部:docker exec -it tomcat01 /bin/bash
      2. ls,发现有webapps和webapps.dist目录
        1. cd webapps:发现里面是空的
        2. cd webapps.dist:发现里面有tomcat的相关文件(可以理解为tomcat的启动文件)
        3. 我们需要把webapps.dist中的所有文件放在webapps中,即可成功运行。
      3. 拷贝文件:在docker exec -it tomcat01 /bin/bash进去的文件夹下
        1. 执行命令:cp -r webapps.dist/* webapps
      4. 测试:curl localhost:8080
    4. 开放阿里云端口

image-20211105112518298

第三步:部署war包

  1. 将war包放在tomcat容器中的 /usr/local/tomcat/webapps目录下
  2. 在浏览器进行访问:39.45.32.13:8080/zcloud-layout/login
    1. zcloud-layout是maven中配置的 zcloud-layout
    2. login是相关接口

Guess you like

Origin blog.csdn.net/zhang19903848257/article/details/121287999