Java一分钟 || Docker因权限问题无法启动Springboot怎么办
問題
把 Springboot 的 jar 包打進(jìn) Docker 鏡像后,無法正常啟動(dòng),而在本地測(cè)試可以正常啟動(dòng)。
查看日志,主要有兩種報(bào)錯(cuò)信息:
(1)關(guān)于H2的報(bào)錯(cuò):This is very likely to create a memory leak.
(2)關(guān)于Socket:java.net.SocketException: Permission denied
解決過程
針對(duì)報(bào)錯(cuò)(1),增大JVM啟動(dòng)內(nèi)存,依然無法解決,不是該問題。所以可能也是由于權(quán)限問題引起的。
在 Dockerfile 添加賦權(quán):
RUN chmod 755 -R dataflow-server.jar
結(jié)果在 build 鏡像的時(shí)候報(bào)錯(cuò):
chmod: changing permissions of xxx: Operation not pemitted
解決方案一:
使用 root 用戶執(zhí)行:
USER root
RUN chmod 755 -R dataflow-server.jar
解決方案二:
在打包前賦值, docker 會(huì)保留本來的權(quán)限。
賦值后,成功啟動(dòng)!
總結(jié)
以上是生活随笔為你收集整理的Java一分钟 || Docker因权限问题无法启动Springboot怎么办的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软遭遇滑铁卢,chrome成为最受欢迎
- 下一篇: 怎么能学好Java开发,学好Java一般