Selaa lähdekoodia

perf(config): 优化Docker配置和内存设置

- 为所有Dockerfile添加JVM内存参数 -Xms1g -Xmx2g
- 在docker-compose.yml中为各服务配置内存限制防止OOM
- 为nacos配置堆转储参数便于问题排查
- 优化产品服务的排序逻辑和查询条件
- 在数据库映射中添加更新时间字段
- 注释掉nacos监控和定时任务相关服务配置
- 新增独立的nacos-dockerfile和docker-compose-nacos.yml配置文件
肖路 1 kuukausi sitten
vanhempi
sitoutus
f69cada80d
41 muutettua tiedostoa jossa 165 lisäystä ja 83 poistoa
  1. 1 1
      ruoyi-auth/Dockerfile
  2. 1 1
      ruoyi-auth/auth-Dockerfile
  3. 1 1
      ruoyi-gateway/Dockerfile
  4. 1 1
      ruoyi-gateway/gateway-Dockerfile
  5. 1 1
      ruoyi-modules/ruoyi-bill/Dockerfile
  6. 1 1
      ruoyi-modules/ruoyi-bill/bill-Dockerfile
  7. 1 1
      ruoyi-modules/ruoyi-customer/Dockerfile
  8. 1 1
      ruoyi-modules/ruoyi-customer/customer-Dockerfile
  9. 1 1
      ruoyi-modules/ruoyi-external/Dockerfile
  10. 1 1
      ruoyi-modules/ruoyi-external/external-Dockerfile
  11. 1 1
      ruoyi-modules/ruoyi-gen/Dockerfile
  12. 1 1
      ruoyi-modules/ruoyi-gen/gen-Dockerfile
  13. 1 1
      ruoyi-modules/ruoyi-job/Dockerfile
  14. 1 1
      ruoyi-modules/ruoyi-job/job-Dockerfile
  15. 1 1
      ruoyi-modules/ruoyi-mall/Dockerfile
  16. 1 1
      ruoyi-modules/ruoyi-mall/mall-Dockerfile
  17. 1 1
      ruoyi-modules/ruoyi-order/Dockerfile
  18. 1 1
      ruoyi-modules/ruoyi-order/order-Dockerfile
  19. 1 1
      ruoyi-modules/ruoyi-product/Dockerfile
  20. 1 1
      ruoyi-modules/ruoyi-product/product-Dockerfile
  21. 6 4
      ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/service/impl/ProductBaseServiceImpl.java
  22. 1 0
      ruoyi-modules/ruoyi-product/src/main/resources/mapper/product/ProductBaseMapper.xml
  23. 1 1
      ruoyi-modules/ruoyi-resource/Dockerfile
  24. 1 1
      ruoyi-modules/ruoyi-resource/resource-Dockerfile
  25. 1 1
      ruoyi-modules/ruoyi-system/Dockerfile
  26. 1 1
      ruoyi-modules/ruoyi-system/system-Dockerfile
  27. 1 1
      ruoyi-modules/ruoyi-workflow/Dockerfile
  28. 1 1
      ruoyi-modules/ruoyi-workflow/Dockerfile.server
  29. 1 1
      ruoyi-visual/ruoyi-monitor/Dockerfile
  30. 1 1
      ruoyi-visual/ruoyi-monitor/monitor-Dockerfile
  31. 3 2
      ruoyi-visual/ruoyi-nacos/Dockerfile
  32. 20 0
      ruoyi-visual/ruoyi-nacos/nacos-Dockerfile
  33. 4 0
      ruoyi-visual/ruoyi-nacos/src/main/resources/application.properties
  34. 1 1
      ruoyi-visual/ruoyi-seata-server/Dockerfile
  35. 1 1
      ruoyi-visual/ruoyi-sentinel-dashboard/Dockerfile
  36. 1 1
      ruoyi-visual/ruoyi-snailjob-server/Dockerfile
  37. 1 1
      ruoyi-visual/ruoyi-snailjob-server/snailjob-Dockerfile
  38. 1 1
      script/docker/build-images.sh
  39. 69 42
      script/docker/docker-compose-app.yml
  40. 22 0
      script/docker/docker-compose-nacos.yml
  41. 7 2
      script/docker/docker-compose.yml

+ 1 - 1
ruoyi-auth/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/auth/logs  \
 
 WORKDIR /ruoyi/auth
 
-ENV SERVER_PORT=9210 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9210 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-auth/auth-Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/auth/logs  \
 
 WORKDIR /ruoyi/auth
 
-ENV SERVER_PORT=9210 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9210 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-gateway/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/gateway/logs  \
 
 WORKDIR /ruoyi/gateway
 
-ENV SERVER_PORT=8080 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=8080 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-gateway/gateway-Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/gateway/logs  \
 
 WORKDIR /ruoyi/gateway
 
-ENV SERVER_PORT=8080 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=8080 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-bill/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/bill/logs \
 
 WORKDIR /ruoyi/bill
 
-ENV SERVER_PORT=9318 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9318 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-bill/bill-Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/bill/logs \
 
 WORKDIR /ruoyi/bill
 
-ENV SERVER_PORT=9318 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9318 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-customer/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/customer/logs \
 
 WORKDIR /ruoyi/customer
 
-ENV SERVER_PORT=9212 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9212 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-customer/customer-Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/customer/logs \
 
 WORKDIR /ruoyi/customer
 
-ENV SERVER_PORT=9212 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9212 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-external/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/external/logs \
 
 WORKDIR /ruoyi/external
 
-ENV SERVER_PORT=9618 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9618 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-external/external-Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/external/logs \
 
 WORKDIR /ruoyi/external
 
-ENV SERVER_PORT=9618 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9618 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-gen/Dockerfile

@@ -9,7 +9,7 @@ RUN mkdir -p /ruoyi/gen/logs
 
 WORKDIR /ruoyi/gen
 
-ENV SERVER_PORT=9202 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9202 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-gen/gen-Dockerfile

@@ -9,7 +9,7 @@ RUN mkdir -p /ruoyi/gen/logs
 
 WORKDIR /ruoyi/gen
 
-ENV SERVER_PORT=9202 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9202 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-job/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/job/logs \
 
 WORKDIR /ruoyi/job
 
-ENV SERVER_PORT=9203 SNAIL_PORT=29203 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9203 SNAIL_PORT=29203 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 # 暴露 snail job 客户端端口 用于定时任务调度中心通信

+ 1 - 1
ruoyi-modules/ruoyi-job/job-Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/job/logs \
 
 WORKDIR /ruoyi/job
 
-ENV SERVER_PORT=9203 SNAIL_PORT=29203 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9203 SNAIL_PORT=29203 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 # 暴露 snail job 客户端端口 用于定时任务调度中心通信

+ 1 - 1
ruoyi-modules/ruoyi-mall/Dockerfile

@@ -10,7 +10,7 @@ RUN mkdir -p /ruoyi/mall/logs \
     /ruoyi/skywalking/agent
 WORKDIR /ruoyi/mall
 
-ENV SERVER_PORT=9216 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9216 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-mall/mall-Dockerfile

@@ -10,7 +10,7 @@ RUN mkdir -p /ruoyi/mall/logs \
     /ruoyi/skywalking/agent
 WORKDIR /ruoyi/mall
 
-ENV SERVER_PORT=9216 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9216 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-order/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/order/logs \
 
 WORKDIR /ruoyi/order
 
-ENV SERVER_PORT=9213 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9213 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-order/order-Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/order/logs \
 
 WORKDIR /ruoyi/order
 
-ENV SERVER_PORT=9213 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9213 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-product/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/prouct/logs \
 
 WORKDIR /ruoyi/prouct
 
-ENV SERVER_PORT=9608 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9608 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-product/product-Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/prouct/logs \
 
 WORKDIR /ruoyi/prouct
 
-ENV SERVER_PORT=9608 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9608 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 6 - 4
ruoyi-modules/ruoyi-product/src/main/java/org/dromara/product/service/impl/ProductBaseServiceImpl.java

@@ -477,7 +477,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
             .eq(ObjectUtil.isNotEmpty(bo.getProductReviewStatus()), ProductBaseVo::getProductReviewStatus, bo.getProductReviewStatus())
             .eq(ObjectUtil.isNotEmpty(bo.getDataSource()), ProductBaseVo::getDataSource, bo.getDataSource())
             .eq(ObjectUtil.isNotEmpty(bo.getProductCategory()), ProductBaseVo::getProductCategory, bo.getProductCategory())
-//            .orderByDesc(ProductBaseVo::getCreateTime)
+            .orderByDesc(ProductBaseVo::getCreateTime)
             ;
         if (ObjectUtil.isNotEmpty(bo.getIds())){
             productBaseVoLambdaEsQueryWrapper.in(ProductBaseVo::getId, bo.getIds().split(","));
@@ -1569,7 +1569,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
                 for (int i = 0; i < sortFields.length; i++) {
                     switch (sortFields[i]) {
                         case "1":
-//                            esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getId);
+                            esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getCreateTime);
                         case "2":
                             esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getTotalInventory);
                         case "3":
@@ -1970,7 +1970,7 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
         );
         if (CollUtil.isNotEmpty(protocolProductsVos)) {
             LambdaEsQueryWrapper<ProductBaseVo> esQueryWrapper = new LambdaEsQueryWrapper<ProductBaseVo>();
-//            wrapper.eq(ProductBaseVo::getProductStatus, 1);
+            esQueryWrapper.eq(ProductBaseVo::getProductStatus, 1);
             esQueryWrapper.in(ProductBaseVo::getId, protocolProductsVos.stream().map(ProtocolProductsVo::getProductId).toList());
             // 添加额外的查询条件
             esQueryWrapper.like(ObjectUtil.isNotEmpty(bo.getItemName()),ProductBaseVo::getItemName,bo.getItemName());
@@ -2002,13 +2002,15 @@ public class ProductBaseServiceImpl extends ServiceImpl<ProductBaseMapper, Produ
                 for (int i = 0; i < sortFields.length; i++) {
                     switch (sortFields[i]) {
                         case "1":
-                            esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getId);
+                            esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getCreateTime);
                         case "2":
                             esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getTotalInventory);
                         case "3":
                             esQueryWrapper.orderBy( true, sortOrders[i].equals("Asc"),ProductBaseVo::getMarketPrice);
                     }
                 }
+            }else {
+                esQueryWrapper.orderByDesc(ProductBaseVo::getCreateTime);
             }
             EsPageInfo<ProductBaseVo> esPageInfo = esMapper.pageQuery(esQueryWrapper, pageQuery.getPageNum(), pageQuery.getPageSize());
             List<PcProductVo> pcProductVos = BeanUtil.copyToList(esPageInfo.getList(), PcProductVo.class);

+ 1 - 0
ruoyi-modules/ruoyi-product/src/main/resources/mapper/product/ProductBaseMapper.xml

@@ -272,6 +272,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             b.product_status AS productStatus,
             b.data_source AS dataSource,
             b.create_time AS createTime,
+            b.update_time AS updateTime,
             b.remark,
             -- 扩展表字段
             e.is_customize AS isCustomize,

+ 1 - 1
ruoyi-modules/ruoyi-resource/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/resource/logs \
 
 WORKDIR /ruoyi/resource
 
-ENV SERVER_PORT=9204 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9204 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-resource/resource-Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/resource/logs \
 
 WORKDIR /ruoyi/resource
 
-ENV SERVER_PORT=9204 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9204 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-system/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/system/logs \
 
 WORKDIR /ruoyi/system
 
-ENV SERVER_PORT=9214 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9214 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-system/system-Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/system/logs \
 
 WORKDIR /ruoyi/system
 
-ENV SERVER_PORT=9214 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9214 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-workflow/Dockerfile

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/workflow/logs \
 
 WORKDIR /ruoyi/workflow
 
-ENV SERVER_PORT=9205 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9205 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-modules/ruoyi-workflow/Dockerfile.server

@@ -11,7 +11,7 @@ RUN mkdir -p /ruoyi/workflow/logs \
 
 WORKDIR /ruoyi/workflow
 
-ENV SERVER_PORT=9205 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV SERVER_PORT=9205 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE ${SERVER_PORT}
 

+ 1 - 1
ruoyi-visual/ruoyi-monitor/Dockerfile

@@ -9,7 +9,7 @@ RUN mkdir -p /ruoyi/monitor/logs
 
 WORKDIR /ruoyi/monitor
 
-ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE 9100
 

+ 1 - 1
ruoyi-visual/ruoyi-monitor/monitor-Dockerfile

@@ -9,7 +9,7 @@ RUN mkdir -p /ruoyi/monitor/logs
 
 WORKDIR /ruoyi/monitor
 
-ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE 9100
 

+ 3 - 2
ruoyi-visual/ruoyi-nacos/Dockerfile

@@ -11,11 +11,12 @@ WORKDIR /ruoyi/nacos
 
 EXPOSE 8848
 
-ENV TZ=Asia/Shanghai LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms512m -Xmx1024m"
+# 👇 修改这里:将默认内存提升至 2G,并增加 OOM 导出参数
+ENV TZ=Asia/Shanghai LANG=C.UTF-8 LC_ALL=C.UTF-8 \
+    JAVA_OPTS="-Xms2g -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/ruoyi/nacos/logs/heapdump.hprof"
 
 ADD ./target/ruoyi-nacos.jar ./app.jar
 
 SHELL ["/bin/bash", "-c"]
 
 ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom ${JAVA_OPTS} -jar app.jar
-

+ 20 - 0
ruoyi-visual/ruoyi-nacos/nacos-Dockerfile

@@ -0,0 +1,20 @@
+# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/
+FROM bellsoft/liberica-openjdk-rocky:17.0.15-cds
+
+LABEL maintainer="Lion Li"
+
+RUN mkdir -p /ruoyi/nacos
+
+WORKDIR /ruoyi/nacos
+
+EXPOSE 8848
+
+# 👇 修改这里:将默认内存提升至 2G,并增加 OOM 导出参数
+ENV TZ=Asia/Shanghai LANG=C.UTF-8 LC_ALL=C.UTF-8 \
+    JAVA_OPTS="-Xms2g -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/ruoyi/nacos/logs/heapdump.hprof"
+
+ADD ./target/ruoyi-nacos.jar ./app.jar
+
+SHELL ["/bin/bash", "-c"]
+
+ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom ${JAVA_OPTS} -jar app.jar

+ 4 - 0
ruoyi-visual/ruoyi-nacos/src/main/resources/application.properties

@@ -43,6 +43,10 @@ db.num=1
 db.url.0=jdbc:mysql://yp1.yingpaipay.com:9031/yoe_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
 db.user.0=youyida
 db.password.0=aapYBDthby
+#
+#db.url.0=jdbc:mysql://119.97.180.88:3306/yoe_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
+#db.user.0=root
+#db.password.0=8b1595a453c9d355
 
 ### the maximum retry times for push
 nacos.config.push.maxRetryTime=50

+ 1 - 1
ruoyi-visual/ruoyi-seata-server/Dockerfile

@@ -10,7 +10,7 @@ RUN mkdir -p /ruoyi/seata-server/logs \
 
 WORKDIR /ruoyi/seata-server
 
-ENV TZ=PRC LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="" SEATA_IP="" SEATA_PORT=""
+ENV TZ=PRC LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g" SEATA_IP="" SEATA_PORT=""
 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 
 EXPOSE 7091

+ 1 - 1
ruoyi-visual/ruoyi-sentinel-dashboard/Dockerfile

@@ -10,7 +10,7 @@ RUN mkdir -p /ruoyi/sentinel-dashboard/logs \
 
 WORKDIR /ruoyi/sentinel-dashboard
 
-ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE 8718
 

+ 1 - 1
ruoyi-visual/ruoyi-snailjob-server/Dockerfile

@@ -9,7 +9,7 @@ RUN mkdir -p /ruoyi/snailjob/logs
 
 WORKDIR /ruoyi/snailjob
 
-ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE 8800
 EXPOSE 17888

+ 1 - 1
ruoyi-visual/ruoyi-snailjob-server/snailjob-Dockerfile

@@ -9,7 +9,7 @@ RUN mkdir -p /ruoyi/snailjob/logs
 
 WORKDIR /ruoyi/snailjob
 
-ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms1g -Xmx2g"
 
 EXPOSE 8800
 EXPOSE 17888

+ 1 - 1
script/docker/build-images.sh

@@ -30,7 +30,7 @@ build_image() {
     exit 1
   fi
 }
-
+build_image "nacos"                 "/docker/jar/nacos-Dockerfile"
 # ===================== 网关 =====================
 build_image "ruoyi-gateway"         "/docker/jar/gateway-Dockerfile"
 

+ 69 - 42
script/docker/docker-compose-app.yml

@@ -1,31 +1,35 @@
 services:
-  ruoyi-monitor:
-    image: ruoyi/ruoyi-monitor:2.4.1
-    container_name: ruoyi-monitor
-    environment:
-      # 时区上海
-      TZ: Asia/Shanghai
-    ports:
-      - "9100:9100"
-    volumes:
-      # 日志目录
-      - /home/docker/ruoyi-monitor/logs/:/ruoyi/monitor/logs
-    privileged: true
-    network_mode: "host"
+#  ruoyi-monitor:
+#    image: ruoyi/ruoyi-monitor:2.4.1
+#    container_name: ruoyi-monitor
+#    environment:
+#      # 时区上海
+#      TZ: Asia/Shanghai
+#    ports:
+#      - "9100:9100"
+#    volumes:
+#      # 日志目录
+#      - /home/docker/ruoyi-monitor/logs/:/ruoyi/monitor/logs
+#    privileged: true
+#    network_mode: "host"
+#    mem_limit: 2g
+#    memswap_limit: 2g # 禁止使用 Swap,避免磁盘 I/O 飙升
+#  ruoyi-snailjob-server:
+#    image: ruoyi/ruoyi-snailjob-server:2.4.1
+#    container_name: ruoyi-snailjob-server
+#    environment:
+#      # 时区上海
+#      TZ: Asia/Shanghai
+#    ports:
+#      - "8800:8800"
+#      - "17888:17888"
+#    volumes:
+#      - /home/docker/snailjob/logs/:/ruoyi/snailjob/logs
+#    privileged: true
+#    network_mode: "host"
+#    mem_limit: 2g
+#    memswap_limit: 2g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
-  ruoyi-snailjob-server:
-    image: ruoyi/ruoyi-snailjob-server:2.4.1
-    container_name: ruoyi-snailjob-server
-    environment:
-      # 时区上海
-      TZ: Asia/Shanghai
-    ports:
-      - "8800:8800"
-      - "17888:17888"
-    volumes:
-      - /home/docker/snailjob/logs/:/ruoyi/snailjob/logs
-    privileged: true
-    network_mode: "host"
 
   ruoyi-gateway:
     image: ruoyi/ruoyi-gateway:2.4.1
@@ -40,6 +44,8 @@ services:
       - /home/docker/ruoyi-gateway/logs/:/ruoyi/gateway/logs
     privileged: true
     network_mode: "host"
+    mem_limit: 3g
+    memswap_limit: 3g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
   ruoyi-auth:
     image: ruoyi/ruoyi-auth:2.4.1
@@ -54,6 +60,8 @@ services:
       - /home/docker/ruoyi-auth/logs/:/ruoyi/auth/logs
     privileged: true
     network_mode: "host"
+    mem_limit: 2g
+    memswap_limit: 2g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
   ruoyi-system:
     image: ruoyi/ruoyi-system:2.4.1
@@ -68,23 +76,27 @@ services:
       - /home/docker/ruoyi-system/logs/:/ruoyi/system/logs
     privileged: true
     network_mode: "host"
+    mem_limit: 3g
+    memswap_limit: 3g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
-  ruoyi-job:
-    image: ruoyi/ruoyi-job:2.4.1
-    container_name: ruoyi-job
-    environment:
-      # 时区上海
-      TZ: Asia/Shanghai
-      SERVER_PORT: 9203
-      SNAIL_PORT: 29203
-    ports:
-      - "9203:9203"
-      - "29203:29203"
-    volumes:
-      # 日志目录
-      - /home/docker/ruoyi-job/logs/:/ruoyi/job/logs
-    privileged: true
-    network_mode: "host"
+#  ruoyi-job:
+#    image: ruoyi/ruoyi-job:2.4.1
+#    container_name: ruoyi-job
+#    environment:
+#      # 时区上海
+#      TZ: Asia/Shanghai
+#      SERVER_PORT: 9203
+#      SNAIL_PORT: 29203
+#    ports:
+#      - "9203:9203"
+#      - "29203:29203"
+#    volumes:
+#      # 日志目录
+#      - /home/docker/ruoyi-job/logs/:/ruoyi/job/logs
+#    privileged: true
+#    network_mode: "host"
+#    mem_limit: 2g
+#    memswap_limit: 2g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
   ruoyi-resource:
     image: ruoyi/ruoyi-resource:2.4.1
@@ -99,6 +111,8 @@ services:
       - /home/docker/ruoyi-resource/logs/:/ruoyi/resource/logs
     privileged: true
     network_mode: "host"
+    mem_limit: 3g
+    memswap_limit: 3g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
   ruoyi-product:
     image: ruoyi/ruoyi-product:2.4.1
@@ -113,6 +127,8 @@ services:
       - /home/docker/ruoyi-product/logs/:/ruoyi/product/logs
     privileged: true
     network_mode: "host"
+    mem_limit: 4g
+    memswap_limit: 4g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
   ruoyi-external:
     image: ruoyi/ruoyi-external:2.4.1
@@ -127,6 +143,8 @@ services:
       - /home/docker/ruoyi-external/logs/:/ruoyi/external/logs
     privileged: true
     network_mode: "host"
+    mem_limit: 3g
+    memswap_limit: 3g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
   ruoyi-order:
     image: ruoyi/ruoyi-order:2.4.1
@@ -141,6 +159,8 @@ services:
       - /home/docker/ruoyi-order/logs/:/ruoyi/order/logs
     privileged: true
     network_mode: "host"
+    mem_limit: 4g
+    memswap_limit: 4g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
   ruoyi-customer:
     image: ruoyi/ruoyi-customer:2.4.1
@@ -155,6 +175,8 @@ services:
       - /home/docker/ruoyi-customer/logs/:/ruoyi/customer/logs
     privileged: true
     network_mode: "host"
+    mem_limit: 3g
+    memswap_limit: 3g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
   ruoyi-bill:
     image: ruoyi/ruoyi-bill:2.4.1
@@ -169,6 +191,8 @@ services:
       - /home/docker/ruoyi-bill/logs/:/ruoyi/bill/logs
     privileged: true
     network_mode: "host"
+    mem_limit: 2g
+    memswap_limit: 2g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
   ruoyi-mall:
     image: ruoyi/ruoyi-mall:2.4.1
@@ -183,3 +207,6 @@ services:
       - /home/docker/ruoyi-mall/logs/:/ruoyi/mall/logs
     privileged: true
     network_mode: "host"
+    mem_limit: 2g
+    memswap_limit: 2g # 禁止使用 Swap,避免磁盘 I/O 飙升
+

+ 22 - 0
script/docker/docker-compose-nacos.yml

@@ -0,0 +1,22 @@
+services:
+  nacos:
+    image: ruoyi/ruoyi-nacos:2.4.1  # 记得重新构建镜像并更新 tag,或者直接用新镜像
+    container_name: nacos
+    ports:
+      - "8848:8848"
+      - "9848:9848"
+      - "9849:9849"
+    environment:
+      TZ: Asia/Shanghai
+      # 👇 强制指定 2G 内存,这与 Dockerfile 中的新默认值一致
+      JAVA_OPTS: "-Xms2g -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/nacos/logs/heapdump.hprof"
+    volumes:
+      # 日志目录 注意集群模式下 日志目录不能一致 需要区分例如 nacos1 nacos2
+      - /home/docker/nacos/logs/:/root/nacos/logs
+      # 集群配置文件 集群所有nacos都必须使用此文件
+      - /home/docker/nacos/conf/cluster.conf:/root/nacos/conf/cluster.conf
+    network_mode: "host"
+    # 👇 关键:限制容器总内存为 3G (给 JVM 留 2G + 非堆内存 + 系统开销)
+    # 如果不加这个,JVM 可能会尝试使用更多物理内存导致被 OOM Killer 杀掉
+    mem_limit: 3g
+    memswap_limit: 3g # 禁止使用 Swap,避免磁盘 I/O 飙升

+ 7 - 2
script/docker/docker-compose.yml

@@ -1,6 +1,6 @@
 services:
   nacos:
-    image: ruoyi/ruoyi-nacos:2.4.1
+    image: ruoyi/ruoyi-nacos:2.4.1  # 记得重新构建镜像并更新 tag,或者直接用新镜像
     container_name: nacos
     ports:
       - "8848:8848"
@@ -8,13 +8,18 @@ services:
       - "9849:9849"
     environment:
       TZ: Asia/Shanghai
-      JAVA_OPTS: "-Xms256m -Xmx512m"
+      # 👇 强制指定 2G 内存,这与 Dockerfile 中的新默认值一致
+      JAVA_OPTS: "-Xms2g -Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/nacos/logs/heapdump.hprof"
     volumes:
       # 日志目录 注意集群模式下 日志目录不能一致 需要区分例如 nacos1 nacos2
       - /home/docker/nacos/logs/:/root/nacos/logs
       # 集群配置文件 集群所有nacos都必须使用此文件
       - /home/docker/nacos/conf/cluster.conf:/root/nacos/conf/cluster.conf
     network_mode: "host"
+    # 👇 关键:限制容器总内存为 3G (给 JVM 留 2G + 非堆内存 + 系统开销)
+    # 如果不加这个,JVM 可能会尝试使用更多物理内存导致被 OOM Killer 杀掉
+    mem_limit: 3g
+    memswap_limit: 3g # 禁止使用 Swap,避免磁盘 I/O 飙升
 
   redis:
     image: redis:7.2.8