Ver Fonte

update DockerImageService.java

reghao há 3 meses atrás
pai
commit
7dc6a49de6

+ 2 - 2
web/src/main/java/cn/reghao/bnt/web/devops/docker/controller/DockerController.java

@@ -1,6 +1,6 @@
 package cn.reghao.bnt.web.devops.docker.controller;
 
-import cn.reghao.bnt.web.devops.docker.model.vo.DockerfileImage;
+import cn.reghao.bnt.web.devops.docker.model.vo.DockerImage;
 import cn.reghao.bnt.web.devops.docker.service.DockerImageService;
 import cn.reghao.jutil.web.WebResult;
 import io.swagger.v3.oas.annotations.Operation;
@@ -29,7 +29,7 @@ public class DockerController {
     @Operation(summary = "Dockerfile 中使用的镜像", description = "N")
     @GetMapping(value = "/image", produces = MediaType.APPLICATION_JSON_VALUE)
     public String getDockerfileImage() {
-        List<DockerfileImage> list = dockerImageService.getDockerfileImages();
+        List<DockerImage> list = dockerImageService.getDockerfileImages();
         return WebResult.success(list);
     }
 }

+ 7 - 5
web/src/main/java/cn/reghao/bnt/web/devops/docker/model/vo/DockerfileImage.java → web/src/main/java/cn/reghao/bnt/web/devops/docker/model/vo/DockerImage.java

@@ -11,14 +11,16 @@ import java.util.List;
  */
 @NoArgsConstructor
 @Getter
-public class DockerfileImage {
+public class DockerImage {
     private String repoTag;
-    private List<String> appList;
+    private String stage;
+    private List<String> list;
     private int totalUsed;
 
-    public DockerfileImage(String repoTag, List<String> appList) {
+    public DockerImage(String repoTag, String stage, List<String> list) {
         this.repoTag = repoTag;
-        this.appList = appList;
-        this.totalUsed = appList.size();
+        this.stage = stage;
+        this.list = list;
+        this.totalUsed = list.size();
     }
 }

+ 29 - 9
web/src/main/java/cn/reghao/bnt/web/devops/docker/service/DockerImageService.java

@@ -2,7 +2,9 @@ package cn.reghao.bnt.web.devops.docker.service;
 
 import cn.reghao.bnt.common.msg.constant.PackType;
 import cn.reghao.bnt.web.devops.app.db.repository.config.AppConfigRepository;
-import cn.reghao.bnt.web.devops.docker.model.vo.DockerfileImage;
+import cn.reghao.bnt.web.devops.build.db.repository.CompilerConfigRepository;
+import cn.reghao.bnt.web.devops.builder.model.constant.CompileType;
+import cn.reghao.bnt.web.devops.docker.model.vo.DockerImage;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -13,15 +15,33 @@ import java.util.*;
  */
 @Service
 public class DockerImageService {
-    private final AppConfigRepository configRepository;
+    private final AppConfigRepository appConfigRepository;
+    private final CompilerConfigRepository compilerConfigRepository;
 
-    public DockerImageService(AppConfigRepository configRepository) {
-        this.configRepository = configRepository;
+    public DockerImageService(AppConfigRepository appConfigRepository, CompilerConfigRepository compilerConfigRepository) {
+        this.appConfigRepository = appConfigRepository;
+        this.compilerConfigRepository = compilerConfigRepository;
     }
 
-    public List<DockerfileImage> getDockerfileImages() {
+    public List<DockerImage> getDockerfileImages() {
         Map<String, List<String>> map = new HashMap<>();
-        configRepository.findAll().stream()
+        List<DockerImage> list = new ArrayList<>();
+
+        compilerConfigRepository.findAll().stream()
+                .filter(compilerConfig -> compilerConfig.getType().equals(CompileType.docker.name()))
+                .forEach(compilerConfig -> {
+                    String compileName = compilerConfig.getName();
+                    String compilerImage = compilerConfig.getCompilerImage();
+                    map.computeIfAbsent(compilerImage, k -> new ArrayList<>()).add(compileName);
+                });
+
+        map.forEach((key, value) -> {
+            String stage = "编译阶段";
+            list.add(new DockerImage(key, stage, value));
+        });
+        map.clear();
+
+        appConfigRepository.findAll().stream()
                 .filter(appConfig -> appConfig.getPackerConfig().getType().equals(PackType.docker.getName()))
                 .forEach(appConfig -> {
                     String dockerfile = appConfig.getDockerfile();
@@ -35,11 +55,11 @@ public class DockerImageService {
                         }
                     }
                 });
-
-        List<DockerfileImage> list = new ArrayList<>();
         map.forEach((key, value) -> {
-            list.add(new DockerfileImage(key, value));
+            String stage = "打包阶段";
+            list.add(new DockerImage(key, stage, value));
         });
+        map.clear();
         return list;
     }
 }