tomcat容器部署war包应用

6/5/2024 ubuntutomcatwardocker

# 一、场景

使用docker容器运行tomcat服务,并利用该tomcat服务部署war包应用
1

# 二、实施步骤

# 1、准备tomcat容器

docker run -d -p 7070:8080 -v /home/iot/tomcat_webapps:/usr/local/tomcat/webapps --name tomcat10 tomcat:10.1
1
  • 拉取版本号为10.1的tomcat镜像,然后基于它创建并运行容器
  • -d: 后台运行
  • -p: 端口映射,将宿主计算机的7070端口与容器内的8080端口进行映射。8080端口为容器中tomcat应用默认的监听端口。
  • -v: 路径映射,将宿主计算机的/home/iot/tomcat_webapps(需要提前创建好该路径)映射到容器内的/usr/local/tomcat/webapps。
  • --name: 为容器生成一个自定义的名称,便于管理
  • tomcat:10.1: 指定镜像的名称和版本,如果本地没有,则会从托管服务器拉取。

将tomcat的默认应用拷贝到webapps中验证tomcat的运行状态

docker exec tomcat10 cp -r /usr/local/tomcat/webapps.dist/ROOT /usr/local/tomcat/webapps
1

使用同网络的计算机的浏览器访问<docker容器所在宿主计算机IP地址>:7070就会看到Tomcat的欢迎页,说明tomcat已经正常工作了。

# 2、准备war包

拿到war包后,一般都需要根据实际的部署环境修改一些配置信息。在本例中,需要修改数据库连接信息。

# 2.1 解压文件

可在任意计算机中使用解压工具解压整个war包。然后修改/WEB-INF/classes/application.yaml文件

spring:
  datasource:
    url: jdbc:mysql://172.17.0.1:3306/deploy_demo?serverTimezone=UTC

custom:
  auth-center:
    address: 'http://172.17.0.1'
    port: 7171
1
2
3
4
5
6
7
8
  • spring.datasource.url是数据库连接信息,custom.aut-center是用于鉴权的微服务应用的地址信息。
  • 都使用了172.17.0.1地址,即宿主计算机的地址。可以通过docker inspect <容器名称>查看到该信息。
  • 如果docker运行在非Linux系统上(MacOS或Windows),则访问宿主计算机需要使用host.docker.internal地址。

# 2.2 压缩文件

  • 将刚才解压后的所有资源压缩为zip格式。注意压缩的时候应该选中META-INF、org和WEB-INF三个文件夹进行压缩。 不要选择它们的上级文件夹进行压缩,否则导致层级关系变化,不能被tomcat正确解析。
  • 压缩完成后,将后缀名改为.war即可。
  • 将重新打包的war包上传到/home/iot/tomcat_webapps下即可,tomcat会自动解析war包,并在同级路径下生成同名的文件夹。
  • 使用同网络的计算机的浏览器访问测试接口<docker容器所在宿主计算机IP地址>:7070/<war包不带后缀的文件名>/test/simple?message=Hello,就能看到服务器的响应
Last Updated: 6/23/2024, 11:11:06 AM