LarryDpk
发布于 2020-07-30 / 2031 阅读
0

Docker因权限问题无法启动Springboot

问题

Springbootjar包打进Docker镜像后,无法正常启动,而在本地测试可以正常启动。

查看日志,主要有两种报错信息:

(1)关于H2的报错:This is very likely to create a memory leak.

(2)关于Socket:java.net.SocketException: Permission denied

解决过程

针对报错(1),增大JVM启动内存,依然无法解决,不是该问题。所以可能也是由于权限问题引起的。

Dockerfile添加赋权:

RUN chmod 755 -R dataflow-server.jar

结果在build镜像的时候报错:

chmod: changing permissions of xxx: Operation not pemitted

解决方案一:

使用root用户执行:

USER root
RUN chmod 755 -R dataflow-server.jar

解决方案二:

在打包前赋值,docker会保留本来的权限。

赋值后,成功启动!