Java一分钟 || Docker因权限问题无法启动Springboot怎么办
生活随笔
收集整理的這篇文章主要介紹了
Java一分钟 || Docker因权限问题无法启动Springboot怎么办
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題
把 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 會保留本來的權限。
賦值后,成功啟動!
總結
以上是生活随笔為你收集整理的Java一分钟 || Docker因权限问题无法启动Springboot怎么办的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软遭遇滑铁卢,chrome成为最受欢迎
- 下一篇: 怎么能学好Java开发,学好Java一般