项目场景:
目的: 为了验证java项目部署到docker的路径问题1 描述:
使用最简单的项目 --> springboot搭建,使用maven, 引入start , web 依赖, 暴露一个get接口
java项目打包完成 --> 镜像打包完成 --> 拉起容器并运行时报错
报错内容:no main manifest attribute, in /helloworld/docker-test.jar
把jar包在本地使用java -jar 命令运行,报错: .jar中没有主清单属性
使用idea中的mvn package命令重新打包后,在本地运行通过。
原因分析:
初步判断为项目打包问题。因为之前是使用artifacts 打包,应该是配置异常, 留待观察。解决方案:
使用idea中的mvn package命令重新打包后,在本地运行通过。
问题2 描述:
java项目在docker中部署成功,但是外部访问报:无法访问
第一反应:端口映射有问题
原因分析:
初步判断为项目打包问题。因为之前是使用artifacts 打包,应该是配置异常, 留待观察。解决方案:
使用docker logs <容器id>查看docker日志 ,发现端口为8080 。 所以重新打包镜像,对外暴露端口映射为8080:8080 。重启docker容器。
然后还是无法访问, 怀疑是阿里云服务器的安全组未暴露8080端口。 把8080端口暴露后可以顺利访问,最后附上访问成功截图