我有一个 Springboot 应用程序,打包在 jib 版本 3.2.0 的 docker 镜像中。
当我尝试在我的 Linux 服务器上启动时,我立即出现错误。
[0.012s][warning][os,thread] Failed to start thread - pthread_create failed (EPERM) for attributes: stacksize: 1024k, guardsize: 4k, detached.
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Cannot create worker GC thread. Out of system resources.
# An error report file with more information is saved as:
# //hs_err_pid1.log
Run Code Online (Sandbox Code Playgroud)
我不知道如何查看 /hs_err_pid1.log 因为服务器立即崩溃并且我无法使用 exec 进入。
经过一些测试,我发现容器在特权模式下工作。但出于安全原因我想避免使用该解决方案。
我尝试释放一些内存(4g),但容器仍然崩溃。
我已经使用 docker run 和 docker-compose 运行了我的容器,并且得到了相同的结果
我还尝试在不同的服务器(具有相似的容量)上运行它,并且图像工作正常。
有关信息我在docker版本20.10.4上由jib打包的图像使用jdk17 temurin …
我在我的项目中使用 lombok 并且有一个界面:
public interface MyInterface{
Object getA()
}
Run Code Online (Sandbox Code Playgroud)
还有一个班级
@Getter
public class MyClass implements MyInterface{
private Object a;
private Object b
}
Run Code Online (Sandbox Code Playgroud)
我检查了生成的类,类中生成的方法不是@Override
我想知道如何添加这个注释?失踪的后果是什么@Override?
这可能是另一个问题,但该代码由声纳库分析,声纳说私有字段 a 从未使用过。
我已经看过有关sonarqube + lombok = 误报的主题
但就我而言, b 不会产生误报。所以我不认为这有直接关系
您是否找到了无需重新实现 getA() 即可避免此问题的解决方案?