2021-07-19

关于docker容器部署springboot项目出现的问题

  通过app镜像创建容器使用docker run --id name=springboot_project -p 9000:8080 app并启动后,本来这条命令是创建并启动容器的,但是通过docker ps -a 查看后发现,容器并没有启动成功。
  接着使用命令docker logs (我的容器id) 查看问题所在,发现报错
XXXXXX has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0。
  找了下百度翻译,解释如下:
  xxxx是由最新版本的Java运行时(类文件版本55.0)编译的,这个版本的Java运行时只识别高达52.0的类文件版本。
  于是我使用jdk1.8重新配置了下环境变量还有,idea中的jdk配置。最后如果在idea中用Maven编译的话,需要设置一下默认编译使用的JDK。
关于JDK安装、java环境配置点击蓝色字可以查看。
这篇是关于IDEA使用不同JDK的配置
接着如果需要用到IDEA中的Maven编译文件,则需要修改对应的jdk。
选择File->settings->Build,Execution,Deployment->Build Tools->Maven->Importing->
在这里插入图片描述
找到下方的红色框框选中刚刚设置的jdk
在这里插入图片描述
选择应用,就完成了配置了。
  当我以为结束的时候,通过java -jar XXXX 启动springboot项目时,发现了xxxxxx.jar中没有主清单属性报错,需要的同学可以点击蓝字。如果这一步没有问题了,那个按照正常的流程执行就可以了。
  没有主清单属性的这个解决的方法也比较简单,就是在pom文件中的plugin标签下添加

<!-- 这个插件,可以将应用打包成一个可执行的jar包  -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

为此我还特地找了下repackage起什么作用,这篇spring-boot-maven插件repackage(goal)的那些事有详细解释。
  还有安装docker,使用阿里云镜像加速器会出现docker服务无法启动的问题,当时我查看了一下,一直找不到解决方案,网上大部分都说要注意json文件的问题,Docker容器启动失败Failed to start Docker Application Container Engine的解决办法,但是实际上我自己是因为防火墙没有关闭所导致的。这里真的花了好久时间,有点小裂开。

查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service 

大概遇到的问题就是这些了,大家觉得有帮助就顺手点个赞呗!蟹蟹!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值