问题
把Springboot
的jar
包打进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
会保留本来的权限。
赋值后,成功启动!