JHipster 6.0.1 docker compose部署:Java堆空间

JHipster 6.0.1 docker compose部署:Java堆空间,java,docker,docker-compose,jhipster,jib,Java,Docker,Docker Compose,Jhipster,Jib,我有两份申请。应用程序1使用的是JHipster 5.8.2,我将它部署到一个带有2GB内存的数字海洋液滴上,在将我的图像推到gitlab的注册表后,我运行它docker compose-f App.yml up(它有\u JAVA\u选项=-Xmx512m-Xms256m),一切都在45秒内完美运行 应用程序2是用JHipster 6.0.1生成的(实际上是对我的应用程序1的升级)。我在我的应用程序2中使用了应用程序1中类似的微滴:带有2GB RAM的单核,但由于Java堆空间,它失败了。在此

我有两份申请。应用程序1使用的是JHipster 5.8.2,我将它部署到一个带有2GB内存的数字海洋液滴上,在将我的图像推到gitlab的注册表后,我运行它
docker compose-f App.yml up
(它有
\u JAVA\u选项=-Xmx512m-Xms256m
),一切都在45秒内完美运行

应用程序2是用JHipster 6.0.1生成的(实际上是对我的应用程序1的升级)。我在我的应用程序2中使用了应用程序1中类似的微滴:带有2GB RAM的单核,但由于
Java堆空间
,它失败了。在此之后,我将我的droplet更改为4GB 2 core droplet,并将我的
app.yml
config更改为:
\u JAVA\u OPTIONS=-Xmx3072m-Xms2048m
,但在40分钟后,由于同样的问题,它仍然失败

在这个错误之后,我尝试在我的计算机上运行32GB的映像,2个半小时后,同样的问题出现了

这就是我打包6.0.1应用程序的方式:

  • /mvnw验证-Pprod-DskipTests
  • /mvnw jib:build-Dimage=registry.gitlab.com/amatos/project
在我的水滴中:

  • docker compose-f app.yml up-d
这应该是可行的,但它永远不会通过完全配置的Web应用程序,几分钟后(取决于RAM的数量),它就会失败

我还缺一步吗

发现: 在做了大量测试之后,我发现,通过添加自定义DTO,我就遇到了Java堆空间问题

生成的DTO:
package com.facturapp.service.dto;
导入javax.validation.constraints.*;
导入java.io.Serializable;
导入java.util.Objects;
导入javax.persistence.Lob;
/**
*{@link com.facturapp.domain.Address}实体的DTO。
*/
实现可序列化的公共类地址{
私人长id;
@NotNull
私有字符串名称;
私人字符串联系人;
私有字符串移动;
私有字符串地址;
@高球
私人弦乐;
私人布尔传递;
私有布尔发票;
私有布尔活动;
私人长区ID;
私有字符串区名称;
私人长partnerId;
私有字符串名称;
公共长getId(){
返回id;
}
公共无效集合id(长id){
this.id=id;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getContact(){
回接;
}
公共无效设置联系人(字符串联系人){
this.contact=contact;
}
公共字符串getMobile(){
返回手机;
}
公共void setMobile(字符串移动){
this.mobile=mobile;
}
公共字符串getAddress(){
回信地址;
}
公共无效设置地址(字符串地址){
this.address=地址;
}
公共字符串getNote(){
退货单;
}
公共无效设置注释(字符串注释){
this.note=注释;
}
公共布尔isDelivery(){
退货;
}
公共无效集合传递(布尔传递){
这就是交付=交付;
}
公共布尔值isInvoicing(){
退货发票;
}
公共发票(布尔发票){
这是开发票=开发票;
}
公共布尔isActive(){
主动返回;
}
public void setActive(布尔激活){
这个.active=active;
}
公共长getDistrictId(){
返回区ID;
}
public void setDistrictId(长districtId){
this.districtId=districtId;
}
公共字符串getDistrictName(){
返回地区名称;
}
public void setDistrictName(字符串districtName){
this.districtName=districtName;
}
公共长getPartnerId(){
返回partnerId;
}
public void setPartnerId(长partnerId){
this.partnerId=partnerId;
}
公共字符串getPartnerName(){
返回partnerName;
}
public void setPartnerName(字符串partnerName){
this.partnerName=partnerName;
}
@凌驾
公共布尔等于(对象o){
if(this==o){
返回true;
}
如果(o==null | | getClass()!=o.getClass()){
返回false;
}
AddressDTO AddressDTO=(AddressDTO)o;
if(addressDTO.getId()==null | | getId()==null){
返回false;
}
返回Objects.equals(getId(),addressDTO.getId());
}
@凌驾
公共int hashCode(){
返回Objects.hashCode(getId());
}
@凌驾
公共字符串toString(){
返回“AddressDTO{”+
“id=”+getId()+
“,name=”“+getName()+””+
,联系人=“+getContact()+”“+
,mobile='+getMobile()+''+
,地址=“+getAddress()+”“+
,注意=“+getNote()+””+
,传递=“+isDelivery()+”“+
,发票=“+isInvoicing()+””+
,活动=“+isActive()+”“+
“,district=“+getDistrictId()+
,地区=“+getDistrictName()+””+
“,partner=“+getPartnerId()+
,合作伙伴=“+getPartnerName()+”“+
"}";
}
}
定制数据传送对象
package com.facturapp.service.dto;
导入com.facturapp.domain.District;
/**
*{@link com.facturapp.domain.Address}实体的DTO。
*/
公共类AddressFaDTO扩展了AddressDTO{
私家区;
公共地区(地区){
返回区;
}
公共区域(地区){
this.district=地区;
}
}
自定义DTO是
地址
,并扩展生成的DTO。生成的DTO有几个字段,其中两个是
districtId(Long)
districtName(String)
,但我的自定义DTO也有
district
facturapp_1  | 2019-06-03 06:56:20.395  INFO 1 --- [  restartedMain] com.almasoft.facturapp.FacturApp         : Starting FacturApp on c40efbe18b21 with PID 1 (/app/classes started by root in /)
facturapp_1  | 2019-06-03 06:56:20.407  INFO 1 --- [  restartedMain] com.almasoft.facturapp.FacturApp         : The following profiles are active: prod,swagger
facturapp_1  | 2019-06-03 06:56:45.918  WARN 1 --- [  restartedMain] i.g.j.c.liquibase.AsyncSpringLiquibase   : Warning, Liquibase took more than 5 seconds to start up!
facturapp_1  | 2019-06-03 06:56:57.351  INFO 1 --- [  restartedMain] c.a.facturapp.config.WebConfigurer       : Web application configuration, using profiles: prod
facturapp_1  | 2019-06-03 06:56:57.353  INFO 1 --- [  restartedMain] c.a.facturapp.config.WebConfigurer       : Web application fully configured
facturapp_1  | WARNING: An illegal reflective access operation has occurred
facturapp_1  | WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils (file:/app/libs/spring-core-5.1.6.RELEASE.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
facturapp_1  | WARNING: Please consider reporting this to the maintainers of org.springframework.cglib.core.ReflectUtils
facturapp_1  | WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
facturapp_1  | WARNING: All illegal access operations will be denied in a future release
facturapp_1  | 2019-06-03 07:03:27.207  WARN 1 --- [  restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is com.google.common.util.concurrent.ExecutionError: java.lang.OutOfMemoryError: Java heap space
facturapp_1  | 2019-06-03 07:03:27.606 ERROR 1 --- [  restartedMain] o.s.boot.SpringApplication               : Application run failed
facturapp_1  |
facturapp_1  | org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is com.google.common.util.concurrent.ExecutionError: java.lang.OutOfMemoryError: Java heap space
facturapp_1  |  at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:185)
facturapp_1  |  at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53)
facturapp_1  |  at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360)
facturapp_1  |  at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158)
facturapp_1  |  at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122)
facturapp_1  |  at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:893)
facturapp_1  |  at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:163)
facturapp_1  |  at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:552)
facturapp_1  |  at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)
facturapp_1  |  at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
facturapp_1  |  at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
facturapp_1  |  at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
facturapp_1  |  at com.facturapp.FacturApp.main(FacturApp.java:63)
facturapp_1  |  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
facturapp_1  |  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
facturapp_1  |  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
facturapp_1  |  at java.base/java.lang.reflect.Method.invoke(Unknown Source)
facturapp_1  |  at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
facturapp_1  | Caused by: com.google.common.util.concurrent.ExecutionError: java.lang.OutOfMemoryError: Java heap space
facturapp_1  |  at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
facturapp_1  |  at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
facturapp_1  |  at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)
facturapp_1  |  at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4960)
facturapp_1  |  at springfox.documentation.schema.CachingModelDependencyProvider.dependentModels(CachingModelDependencyProvider.java:58)
facturapp_1  |  at springfox.documentation.schema.DefaultModelProvider.dependencies(DefaultModelProvider.java:128)
facturapp_1  |  at springfox.documentation.schema.CachingModelProvider.dependencies(CachingModelProvider.java:68)
facturapp_1  |  at springfox.documentation.spring.web.scanners.ApiModelReader.populateDependencies(ApiModelReader.java:136)
facturapp_1  |  at springfox.documentation.spring.web.scanners.ApiModelReader.read(ApiModelReader.java:78)
facturapp_1  |  at springfox.documentation.spring.web.scanners.ApiListingScanner.scan(ApiListingScanner.java:133)
facturapp_1  |  at springfox.documentation.spring.web.scanners.ApiDocumentationScanner.scan(ApiDocumentationScanner.java:71)
facturapp_1  |  at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.scanDocumentation(DocumentationPluginsBootstrapper.java:101)
facturapp_1  |  at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.start(DocumentationPluginsBootstrapper.java:167)
facturapp_1  |  at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182)
facturapp_1  |  ... 17 common frames omitted
facturapp_1  | Caused by: java.lang.OutOfMemoryError: Java heap space
facturapp_1  |  at java.base/java.util.Arrays.copyOf(Unknown Source)
facturapp_1  |  at java.base/java.util.ArrayList.grow(Unknown Source)
facturapp_1  |  at java.base/java.util.ArrayList.addAll(Unknown Source)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedPropertiesAndFields(DefaultModelDependencyProvider.java:181)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedDependencies(DefaultModelDependencyProvider.java:120)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.maybeFromRegularType(DefaultModelDependencyProvider.java:207)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedPropertiesAndFields(DefaultModelDependencyProvider.java:183)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedDependencies(DefaultModelDependencyProvider.java:120)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.maybeFromRegularType(DefaultModelDependencyProvider.java:207)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedPropertiesAndFields(DefaultModelDependencyProvider.java:183)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedDependencies(DefaultModelDependencyProvider.java:120)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.maybeFromCollectionElementType(DefaultModelDependencyProvider.java:220)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedPropertiesAndFields(DefaultModelDependencyProvider.java:181)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedDependencies(DefaultModelDependencyProvider.java:120)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.maybeFromCollectionElementType(DefaultModelDependencyProvider.java:220)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedPropertiesAndFields(DefaultModelDependencyProvider.java:181)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedDependencies(DefaultModelDependencyProvider.java:120)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.maybeFromCollectionElementType(DefaultModelDependencyProvider.java:220)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedPropertiesAndFields(DefaultModelDependencyProvider.java:181)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedDependencies(DefaultModelDependencyProvider.java:120)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.maybeFromRegularType(DefaultModelDependencyProvider.java:207)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedPropertiesAndFields(DefaultModelDependencyProvider.java:183)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.resolvedDependencies(DefaultModelDependencyProvider.java:120)
facturapp_1  |  at springfox.documentation.schema.DefaultModelDependencyProvider.dependentModels(DefaultModelDependencyProvider.java:79)
facturapp_1  |  at springfox.documentation.schema.CachingModelDependencyProvider$1.load(CachingModelDependencyProvider.java:50)
facturapp_1  |  at springfox.documentation.schema.CachingModelDependencyProvider$1.load(CachingModelDependencyProvider.java:48)
facturapp_1  |  at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
facturapp_1  |  at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
facturapp_1  |  at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
facturapp_1  |  at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
facturapp_1  |  at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
facturapp_1  |  at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)