docker部署Tomcat,springboot项目

  1. docker安装Tomcat
    1. docker pull tomcat
      docker run -p 8080:8080 --name mytomcat tomcat:latest # 提取镜像,生成容器,并命名容器为:mytomcat
    2. docker ps
  2. docker安装jdk
    1. 拷贝本地jdk到docker 
      docker cp *****.gz mytomcat:/root
    2. 进入容器配置环境变量
      docker exec -it mytomcat bash
      apt-get update
      apt-get install vim
      export JAVA_HOME=/usr/local/java/jdk1.8.0_211
      export PATH=$JAVA_HOME/bin:$PATH
      刷新配置:source ~/.bashrc,并用java -version测试是否安装成功。
  3. 部署web应用
    1. 上传war包
      docker cp atp.war mytomcat:/usr/local/tomcat/webapps或者安装rz
      docker restart mytomcat
    2. 建立镜像
      docker commit -a 'cbj' -m 'first version' mytomcat mytomcat:v1
      #docker  commit -m  “提交说明文字”  -a  “作者”   要提交的容器名  提交后的镜像名:提交后的镜像tag名  
    3. 打包成功后,需要打标签,完成后,推入私有库,拉取仓库
      docker tag mytomcat 112.126.64.183:5000/mytomcat
      tag语法:[容器ID|容器名称][仓库][标签]
      docker push 112.126.64.183:5000/mytomcat
      docker pull 112.126.64.183:5000/mytomcat
      docker run -p 8080:8080 --name mytomcat 112.126.64.183:5000/mytomcat:v1
    4. 仓库安装见上一篇
  4. 遇到的问题
    1. Tomcat9.0以上无法访问8080
      1. 这是tomcat版本问题,webapps下是空的,所以访问不到首页,我默认最新版latest,是tomcat9,后面换成了8.0.52,就有用了。。。
      2. 发现旁边还有个webapps.dist的文件,进入才发现原本应该在webapps文件中的文件都在webapps.dist文件中,现在也不知道为什么。将webapps.dist重命名成webapps即可,原来的webapps(空文件)可以删除或者命名成其他的名字既:mv webapps.dist webapps
    2. web项目无法启动
      1. 报错信息:
        Description:
        
        An attempt was made to call a method that does not exist. The attempt was made from the following location:
        
            org.hibernate.validator.internal.xml.config.ValidationBootstrapParameters.<init>(ValidationBootstrapParameters.java:63)
        
        The following method did not exist:
        
            javax.validation.BootstrapConfiguration.getClockProviderClassName()Ljava/lang/String;
        
        The method's class, javax.validation.BootstrapConfiguration, is available from the following locations:
        
            jar:file:/D:/Dev/repositories/javax/javaee-api/7.0/javaee-api-7.0.jar!/javax/validation/BootstrapConfiguration.class
            jar:file:/D:/Dev/repositories/javax/validation/validation-api/2.0.1.Final/validation-api-2.0.1.Final.jar!/javax/validation/BootstrapConfiguration.class
        
        It was loaded from the following location:
        
            file:/D:/Dev/repositories/javax/javaee-api/7.0/javaee-api-7.0.jar
        
        

        原因是javaee版本问题,升级为8.0就可以了

         <dependency>
             <groupId>javax</groupId>
             <artifactId>javaee-api</artifactId>
             <version>8.0</version>
        </dependency>
        

         

    3. springboot项目修改
      1. 启动类要继承SpringBootServletInitializer接口
      2. 剔除依赖
        public class Application extends SpringBootServletInitializer {
        
            @Override
            protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
                return builder.sources(Application.class);
            }
        
            public static void main(String[] args) {
                new SpringApplicationBuilder(Application.class).web(true).run(args);
            }
        }
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-start-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

        未完待续……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值