Docker实践笔记5:Maven自动部署至Tomcat容器

介绍

Java项目配置Maven插件,将打包好的war包,一键部署到远程tomcat容器中.

启动Tomcat容器

1、下载dockerFile配置源码 https://github.com/CiaraLi/dockerFiles, 进入maven 配置文件夹,可以看到如下目录

├── Dockerfile

├── src

 

│   ├── manager.xml

│   ├── maven_install.sh

│   ├── server.xml

│   └── tomcat-users.xml

└── webapps   

2、修改Tomcat配置
编辑tomcat用管理员账号密码

 
 

3、构建maven镜像

docker build -t maven ./
docker run -itd -v /home/www-data/java/webapps:/var/data/webapps -v /home/www-data/java/logs/:/var/data/logs/ -p 8080:8080  --name maven maven 

4、验证tomcat http://127.0.0.1:8080/

安装Maven

1、maven官方下载适用版本:https://maven.apache.org/download.cgi
2、解压至/usr/local/maven/
3、配置tomcat账号

   

    

      tomcat

      robot

      robot

    

  

项目配置

  • 修改pom.xml
    1、修改打包方式为war
war

2、修改依赖

    
        org.springframework.boot
        spring-boot-starter-web
        
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
        
    
     
    
        org.springframework.boot
        spring-boot-starter-tomcat
        provided
     

3、添加Maven插件,将server配置为步骤2中的服务名,path是部署的路径 ,URL填写远程tomcat的地址

            
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.2
                
                    http://127.0.0.1:8080/manager/text
                    tomcat
                    true
                    /test
                
            
            
                org.apache.maven.plugins
                maven-war-plugin
                
                    false
                
            

4、执行部署

mvn tomcat7:deploy   // 第一次执行
mvn tomcat7:redeploy   // 修改后执行

如果是第一次部署,运行mvn tomcat7:deploy进行自动部署(对于tomcat8,9,也是使用tomcat7命令),如果是更新了代码后重新部署更新,运行mvn tomcat7:redeploy,如果第一次部署使用mvn tomcat7:redeploy,则只会执行上传war文件,服务器不会自动解压部署。如果路径在tomcat服务器中已存在并且使用mvn tomcat7:deploy命令的话,上面的配置中一定要配置true,不然会报错。

5、版本

  • path 后面添加#1.0号可以生成版本目录,如test#1.0,访问路径就是 /hello/1.0

6、访问 http://1127.0.0.1:8080/manager/html/list 查看应用部署

你可能感兴趣的:(【Docker技术】,spring,maven,docker)