3 Commit-ok 8b6e30b9f1 ... da2bbf6af3

Szerző SHA1 Üzenet Dátum
  reghao da2bbf6af3 调整 mgr 中构建配置相关接口 1 hete
  reghao 6e3a11efef update RepoAuthConfig 1 hete
  reghao 16bcb88bfe 更新 CompilerController 接口和数据模型 1 hete
28 módosított fájl, 356 hozzáadás és 232 törlés
  1. 1 1
      common/src/main/java/cn/reghao/devops/common/msg/constant/PackType.java
  2. 73 51
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/CompilerController.java
  3. 21 18
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/DockerRegistryController.java
  4. 22 22
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/PackerController.java
  5. 13 2
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/RepoAuthController.java
  6. 3 1
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/constant/RepoType.java
  7. 28 0
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/dto/CompilerArgDto.java
  8. 25 0
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/dto/CompilerEnvDto.java
  9. 21 0
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/dto/DockerAuthDto.java
  10. 8 6
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/CompilerArg.java
  11. 2 6
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/CompilerBind.java
  12. 4 5
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/CompilerConfig.java
  13. 7 6
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/CompilerEnv.java
  14. 1 1
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/DockerRegistry.java
  15. 0 1
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/PackerConfig.java
  16. 5 5
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/RepoAuthConfig.java
  17. 8 3
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/CompilerConfigService.java
  18. 21 4
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/DockerRegistryService.java
  19. 84 31
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/impl/CompilerConfigServiceImpl.java
  20. 1 1
      mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/impl/PackerConfigServiceImpl.java
  21. 1 1
      mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/model/vo/BuildConfigSnapshot.java
  22. 1 1
      mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/service/PipelineContext.java
  23. 1 2
      mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/service/impl/DeployAppImpl.java
  24. 1 1
      mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/tool/compiler/DockerRunCompiler.java
  25. 0 24
      mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/tool/packer/EmptyPack.java
  26. 1 1
      mgr/src/main/java/cn/reghao/devops/mgr/ops/docker/controller/DockerController.java
  27. 1 1
      mgr/src/main/java/cn/reghao/devops/mgr/ops/docker/db/repository/DockerRegistryRepository.java
  28. 2 37
      mgr/src/main/java/cn/reghao/devops/mgr/ops/util/BuilderInit.java

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/msg/constant/PackType.java

@@ -7,7 +7,7 @@ package cn.reghao.devops.common.msg.constant;
  * @date 2019-11-15 21:59:35
  */
 public enum PackType {
-    none, docker, zip, staticFiles;
+    docker, staticFiles, zip;
 
     public String getName() {
         return this.name();

+ 73 - 51
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/CompilerController.java

@@ -1,7 +1,9 @@
 package cn.reghao.devops.mgr.ops.build.controller;
 
 import cn.reghao.devops.mgr.ops.build.db.repository.CompilerConfigRepository;
+import cn.reghao.devops.mgr.ops.build.model.dto.CompilerArgDto;
 import cn.reghao.devops.mgr.ops.build.model.dto.CompilerBindDto;
+import cn.reghao.devops.mgr.ops.build.model.dto.CompilerEnvDto;
 import cn.reghao.devops.mgr.ops.build.model.po.CompilerConfig;
 import cn.reghao.devops.mgr.ops.build.service.CompilerConfigService;
 import cn.reghao.devops.mgr.ops.build.model.constant.CompileType;
@@ -40,6 +42,32 @@ public class CompilerController {
         this.compilerConfigService = compilerConfigService;
     }
 
+    @Operation(summary = "编译类型列表", description = "N")
+    @GetMapping(value = "/types", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String addCompilerPage() {
+        List<SelectOption> compileTypes = Arrays.stream(CompileType.values())
+                .filter(compileType -> !compileType.name().equals(CompileType.none.name()))
+                .map(compileType -> new SelectOption(compileType.getName(), compileType.getName()))
+                .collect(Collectors.toList());
+        return WebResult.success(compileTypes);
+    }
+
+    @Operation(summary = "添加编译配置", description = "N")
+    @PostMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String addCompileConfig(@Validated CompilerConfig compilerConfig) {
+        Result result = compilerConfigService.addOrUpdate(compilerConfig);
+        return WebResult.result(result);
+    }
+
+    @Operation(summary = "删除应用编译配置", description = "N")
+    @PostMapping(value = "/delete", produces = MediaType.APPLICATION_JSON_VALUE)
+    @ResponseBody
+    public String deleteCompileConfig(Integer id) {
+        Result result = compilerConfigService.delete(id);
+        return WebResult.result(result);
+    }
+
     @Operation(summary = "编译配置列表页面", description = "N")
     @GetMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE)
     public String compilerConfigPage(@RequestParam("pn") int pageNumber) {
@@ -57,81 +85,75 @@ public class CompilerController {
         return PageList.pageList(pageNumber, pageSize, (int) total, list);
     }
 
-    @Operation(summary = "编译类型列表", description = "N")
-    @GetMapping(value = "/types", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String addCompilerPage() {
-        List<SelectOption> compileTypes = Arrays.stream(CompileType.values())
-                .filter(compileType -> !compileType.name().equals(CompileType.none.name()))
-                .map(compileType -> new SelectOption(compileType.getName(), compileType.getName()))
-                .collect(Collectors.toList());
-        return WebResult.success(compileTypes);
-    }
-
-    @Operation(summary = "添加 docker 编译器映射目录", description = "N")
+    @Operation(summary = "添加 docker 容器映射目录", description = "N")
     @PostMapping(value = "/bind/add", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String addCompilerBind(@RequestBody @Validated CompilerBindDto compilerBindDto) {
-        compilerConfigService.addDockerBind(compilerBindDto);
-        return WebResult.success();
+    public String addContainerBind(@RequestBody @Validated CompilerBindDto compilerBindDto) {
+        Result result = compilerConfigService.addContainerBind(compilerBindDto);
+        return WebResult.result(result);
     }
 
-    @Operation(summary = "添加 docker 编译器映射目录", description = "N")
+    @Operation(summary = "删除 docker 容器映射目录", description = "N")
     @PostMapping(value = "/bind/delete", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteCompilerBind(@RequestBody @Validated CompilerBindDto compilerBindDto) {
-        compilerConfigService.deleteDockerBind(compilerBindDto);
-        return WebResult.success();
+    public String deleteContainerBind(@RequestBody @Validated CompilerBindDto compilerBindDto) {
+        Result result = compilerConfigService.deleteContainerBind(compilerBindDto);
+        return WebResult.result(result);
     }
 
-    @Operation(summary = "编译器的容器映射目录页面", description = "N")
+    @Operation(summary = "docker 容器目录映射列表", description = "N")
     @GetMapping(value = "/bind/list", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String compilerBindPage(@RequestParam("id") int id) {
+    public String containerBindList(@RequestParam("id") int id) {
         CompilerConfig compilerConfig = compilerConfigRepository.findById(id).orElse(null);
         if (compilerConfig != null && compilerConfig.getType().equals(CompileType.dockerRun.getName())) {
             return WebResult.success(compilerConfig.getCompilerBinds());
         }
-        return WebResult.failWithMsg("compiler not dockerRun type");
+        return WebResult.failWithMsg("只有 dockerRun 类型支持添加容器目录映射");
     }
 
-    @Operation(summary = "编译器的容器环境变量页面", description = "N")
-    @GetMapping(value = "/env/list", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String compilerEnvPage(@RequestParam("id") int id) {
-        CompilerConfig compilerConfig = compilerConfigRepository.findById(id).orElse(null);
-        if (compilerConfig != null && compilerConfig.getType().equals(CompileType.dockerRun.getName())) {
-            return WebResult.success(compilerConfig.getCompilerBinds());
-        }
-        return WebResult.failWithMsg("compiler not dockerRun type");
+    @Operation(summary = "添加 docker 容器环境变量", description = "N")
+    @PostMapping(value = "/env/add", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String addContainerEnv(@RequestBody @Validated CompilerEnvDto compilerEnvDto) {
+        Result result = compilerConfigService.addContainerEnv(compilerEnvDto);
+        return WebResult.result(result);
+    }
+
+    @Operation(summary = "删除 docker 容器环境变量", description = "N")
+    @PostMapping(value = "/env/delete", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String deleteContainerEnv(@RequestBody @Validated CompilerEnvDto compilerEnvDto) {
+        Result result = compilerConfigService.deleteContainerEnv(compilerEnvDto);
+        return WebResult.result(result);
     }
 
-    @Operation(summary = "编译器的 dockerfile 变量页面", description = "N")
-    @GetMapping(value = "/dockerfile/list", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String compilerDockerfilePage(@RequestParam("id") int id) {
+    @Operation(summary = "docker 容器环境变量列表", description = "N")
+    @GetMapping(value = "/env/list", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String containerEnvList(@RequestParam("id") int id) {
         CompilerConfig compilerConfig = compilerConfigRepository.findById(id).orElse(null);
-        if (compilerConfig != null && compilerConfig.getType().equals(CompileType.dockerBuild.getName())) {
-            return WebResult.success(compilerConfig.getCompilerArgs());
+        if (compilerConfig != null && compilerConfig.getType().equals(CompileType.dockerRun.getName())) {
+            return WebResult.success(compilerConfig.getCompilerEnvs());
         }
-        return WebResult.failWithMsg("compiler not dockerBuild type");
+        return WebResult.failWithMsg("只有 dockerRun 类型支持添加容器环境变量");
     }
 
-    @Operation(summary = "添加编译配置", description = "N")
-    @PostMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String addCompileConfig(@Validated CompilerConfig compilerConfig) {
-        Result result = compilerConfigService.addOrUpdate(compilerConfig);
+    @Operation(summary = "添加 docker 容器环境变量", description = "N")
+    @PostMapping(value = "/arg/add", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String addDockerfileArg(@RequestBody @Validated CompilerArgDto compilerArgDto) {
+        Result result = compilerConfigService.addDockerfileArg(compilerArgDto);
         return WebResult.result(result);
     }
 
-    @Operation(summary = "删除应用编译配置", description = "N")
-    @PostMapping(value = "/delete", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String deleteCompileConfig(Integer id) {
-        Result result = compilerConfigService.delete(id);
+    @Operation(summary = "删除 docker 容器环境变量", description = "N")
+    @PostMapping(value = "/arg/delete", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String deleteDockerfileArg(@RequestBody @Validated CompilerArgDto compilerArgDto) {
+        Result result = compilerConfigService.deleteDockerfileArg(compilerArgDto);
         return WebResult.result(result);
     }
 
-    @Operation(summary = "获取编译器版本信息", description = "N")
-    @GetMapping(value = "/version", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String getCompileVersion(@RequestParam("id") Integer id) {
-        String result = compilerConfigService.getCompilerVersion(id);
-        return WebResult.success(result);
+    @Operation(summary = "dockerfile 参数变量列表", description = "N")
+    @GetMapping(value = "/arg/list", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String dockerfileArgList(@RequestParam("id") int id) {
+        CompilerConfig compilerConfig = compilerConfigRepository.findById(id).orElse(null);
+        if (compilerConfig != null && compilerConfig.getType().equals(CompileType.dockerBuild.getName())) {
+            return WebResult.success(compilerConfig.getCompilerArgs());
+        }
+        return WebResult.failWithMsg("只有 dockerBuild 类型支持添加 dockerfile 参数变量");
     }
 }

+ 21 - 18
mgr/src/main/java/cn/reghao/devops/mgr/ops/docker/controller/DockerRegistryController.java → mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/DockerRegistryController.java

@@ -1,10 +1,12 @@
-package cn.reghao.devops.mgr.ops.docker.controller;
+package cn.reghao.devops.mgr.ops.build.controller;
 
 import cn.reghao.devops.common.docker.model.DockerAuth;
+import cn.reghao.devops.mgr.ops.build.model.dto.DockerAuthDto;
 import cn.reghao.devops.mgr.ops.docker.db.repository.DockerRegistryRepository;
-import cn.reghao.devops.mgr.ops.docker.model.po.DockerRegistry;
-import cn.reghao.devops.mgr.ops.docker.service.DockerRegistryService;
+import cn.reghao.devops.mgr.ops.build.model.po.DockerRegistry;
+import cn.reghao.devops.mgr.ops.build.service.DockerRegistryService;
 import cn.reghao.jutil.jdk.web.db.PageList;
+import cn.reghao.jutil.jdk.web.result.Result;
 import cn.reghao.jutil.web.WebResult;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
@@ -22,7 +24,7 @@ import java.util.List;
  */
 @Tag(name = "Docker 仓库接口")
 @RestController
-@RequestMapping("/api/devops/docker")
+@RequestMapping("/api/devops/build/docker")
 public class DockerRegistryController {
     private final DockerRegistryRepository dockerRegistryRepository;
     private final DockerRegistryService dockerRegistryService;
@@ -34,6 +36,21 @@ public class DockerRegistryController {
         this.dockerRegistryService = dockerRegistryService;
     }
 
+    @Operation(summary = "添加 DockerRegistry 配置", description = "N")
+    @PostMapping(value = "/registry", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String addOrUpdateRepoConfig(@Validated DockerAuthDto dockerAuthDto) {
+        /*Result result = dockerRegistryService.addOrUpdate(dockerAuthDto);
+        return WebResult.result(result);*/
+        return WebResult.success();
+    }
+
+    @Operation(summary = "删除 DockerRegistry 配置", description = "N")
+    @PostMapping(value = "/registry/delete", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String deleteRepoConfig(Integer id) {
+        dockerRegistryService.delete(id);
+        return WebResult.success();
+    }
+
     @Operation(summary = "DockerRegistry 列表页面", description = "N")
     @GetMapping("/registry")
     public String repoAuthPage(@RequestParam("pn") int pageNumber) {
@@ -50,18 +67,4 @@ public class DockerRegistryController {
         List<DockerRegistry> list = page.getContent();
         return PageList.pageList(pageNumber, pageSize, (int) total, list);
     }
-
-    @Operation(summary = "添加 DockerRegistry 配置", description = "N")
-    @PostMapping(value = "/registry", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String addOrUpdateRepoConfig(@Validated DockerAuth dockerAuth) {
-        dockerRegistryService.addOrUpdate(dockerAuth);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "删除 DockerRegistry 配置", description = "N")
-    @PostMapping(value = "/registry/delete", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteRepoConfig(Integer id) {
-        dockerRegistryService.delete(id);
-        return WebResult.success();
-    }
 }

+ 22 - 22
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/PackerController.java

@@ -46,26 +46,13 @@ public class PackerController {
         this.packerConfigService = packerConfigService;
     }
 
-    @Operation(summary = "打包配置页面", description = "N")
-    @GetMapping(value = "")
-    public String packerPage(@RequestParam("pn") int pageNumber) {
-        PageRequest pageRequest = PageRequest.of(pageNumber-1, pageSize);
-        Page<PackerConfig> page = packerConfigRepository.findAll(pageRequest);
-        PageList<PackerConfig> pageList = getPageList(page);
-        return WebResult.success(pageList);
-    }
-
-    private PageList<PackerConfig> getPageList(Page<PackerConfig> page) {
-        int pageNumber = page.getNumber() + 1;
-        int pageSize = page.getSize();
-        long total = page.getTotalElements();
-        List<PackerConfig> list = page.getContent();
-        return PageList.pageList(pageNumber, pageSize, (int) total, list);
-    }
-
     @Operation(summary = "打包类型列表", description = "N")
     @GetMapping("/pack_types")
     public String addPackerPage() {
+        List<SelectOption> packTypes = Arrays.stream(PackType.values())
+                .map(packType -> new SelectOption(packType.name(), packType.name()))
+                .collect(Collectors.toList());
+
         List<SelectOption> registryList = dockerRegistryRepository.findAll()
                 .stream()
                 .map(dockerRegistry -> {
@@ -75,16 +62,29 @@ public class PackerController {
                 })
                 .collect(Collectors.toList());
 
-        List<SelectOption> packTypes = Arrays.stream(PackType.values())
-                .map(packType -> new SelectOption(packType.name(), packType.name()))
-                .collect(Collectors.toList());
-
         Map<String, Object> map = new HashMap<>();
-        map.put("registryList", registryList);
         map.put("packTypes", packTypes);
+        map.put("registryList", registryList);
         return WebResult.success(map);
     }
 
+    @Operation(summary = "打包配置页面", description = "N")
+    @GetMapping(value = "")
+    public String packerPage(@RequestParam("pn") int pageNumber) {
+        PageRequest pageRequest = PageRequest.of(pageNumber-1, pageSize);
+        Page<PackerConfig> page = packerConfigRepository.findAll(pageRequest);
+        PageList<PackerConfig> pageList = getPageList(page);
+        return WebResult.success(pageList);
+    }
+
+    private PageList<PackerConfig> getPageList(Page<PackerConfig> page) {
+        int pageNumber = page.getNumber() + 1;
+        int pageSize = page.getSize();
+        long total = page.getTotalElements();
+        List<PackerConfig> list = page.getContent();
+        return PageList.pageList(pageNumber, pageSize, (int) total, list);
+    }
+
     @Operation(summary = "添加应用打包配置", description = "N")
     @PostMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE)
     public String addPackConfig(@Validated PackerConfig packerConfig) {

+ 13 - 2
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/RepoAuthController.java

@@ -43,9 +43,20 @@ public class RepoAuthController {
         this.repoAuthConfigService = repoAuthConfigService;
     }
 
-    @Operation(summary = "仓库认证列表页面", description = "N")
+    @Operation(summary = "仓库认证名字 kv 列表", description = "N")
+    @GetMapping(value = "/kv", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String repoAuthNames() {
+        PageRequest pageRequest = PageRequest.of(0, pageSize);
+        Page<RepoAuthConfig> page = repoAuthConfigRepository.findAll(pageRequest);
+        List<SelectOption> repoAuthNames = page.getContent().stream()
+                .map(repoAuthConfig -> new SelectOption(repoAuthConfig.getName(), repoAuthConfig.getName()))
+                .collect(Collectors.toList());
+        return WebResult.success(repoAuthNames);
+    }
+
+    @Operation(summary = "仓库认证列表", description = "N")
     @GetMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String repoAuthPage(@RequestParam("pn") int pageNumber) {
+    public String repoAuthList(@RequestParam("pn") int pageNumber) {
         PageRequest pageRequest = PageRequest.of(pageNumber-1, pageSize);
         Page<RepoAuthConfig> page = repoAuthConfigRepository.findAll(pageRequest);
         PageList<RepoAuthConfig> pageList = getPageList(page);

+ 3 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/constant/RepoType.java

@@ -1,11 +1,13 @@
 package cn.reghao.devops.mgr.ops.build.model.constant;
 
 /**
+ * 仓库类型
+ *
  * @author reghao
  * @date 2021-02-05 22:50:41
  */
 public enum RepoType {
-    git;
+    git, docker;
 
     public String getName() {
         return this.name();

+ 28 - 0
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/dto/CompilerArgDto.java

@@ -0,0 +1,28 @@
+package cn.reghao.devops.mgr.ops.build.model.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * @author reghao
+ * @date 2026-03-20 18:03:24
+ */
+@AllArgsConstructor
+@NoArgsConstructor
+@Setter
+@Getter
+public class CompilerArgDto {
+    @NotNull
+    private Integer id;
+    @NotBlank
+    @Size(max = 255, message = "参数名长度不能超过 255 个字符")
+    private String argName;
+    @NotBlank
+    @Size(max = 255, message = "参数值长度不能超过 255 个字符")
+    private String argValue;
+}

+ 25 - 0
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/dto/CompilerEnvDto.java

@@ -0,0 +1,25 @@
+package cn.reghao.devops.mgr.ops.build.model.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * @author reghao
+ * @date 2026-03-06 15:19:51
+ */
+@AllArgsConstructor
+@NoArgsConstructor
+@Setter
+@Getter
+public class CompilerEnvDto {
+    @NotNull
+    private Integer id;
+    @NotBlank
+    @Size(max = 255, message = "环境变量长度不能超过 255 个字符")
+    private String env;
+}

+ 21 - 0
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/dto/DockerAuthDto.java

@@ -0,0 +1,21 @@
+package cn.reghao.devops.mgr.ops.build.model.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author reghao
+ * @date 2026-03-21 00:13:16
+ */
+@NoArgsConstructor
+@Data
+public class DockerAuthDto {
+    @NotBlank(message = "repoAuthName 不能为空字符")
+    @Size(max = 255, message = "repoAuthName 长度不能超过 255 个字符")
+    private String repoAuthName;
+    @NotBlank(message = "registryUrl 不能为空字符")
+    @Size(max = 255, message = "registryUrl 不能超过 255 个字符")
+    private String registryUrl;
+}

+ 8 - 6
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/CompilerArg.java

@@ -1,10 +1,8 @@
 package cn.reghao.devops.mgr.ops.build.model.po;
 
+import cn.reghao.devops.mgr.ops.build.model.dto.CompilerArgDto;
 import jakarta.persistence.Embeddable;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
+import lombok.*;
 
 /**
  * @author reghao
@@ -12,10 +10,14 @@ import lombok.Setter;
  */
 @AllArgsConstructor
 @NoArgsConstructor
-@Setter
-@Getter
+@Data
 @Embeddable
 public class CompilerArg {
     private String argName;
     private String argValue;
+
+    public CompilerArg(CompilerArgDto compilerArgDto) {
+        this.argName = compilerArgDto.getArgName();
+        this.argValue = compilerArgDto.getArgValue();
+    }
 }

+ 2 - 6
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/CompilerBind.java

@@ -1,10 +1,7 @@
 package cn.reghao.devops.mgr.ops.build.model.po;
 
 import cn.reghao.devops.mgr.ops.build.model.dto.CompilerBindDto;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
+import lombok.*;
 
 import jakarta.persistence.Embeddable;
 
@@ -14,8 +11,7 @@ import jakarta.persistence.Embeddable;
  */
 @AllArgsConstructor
 @NoArgsConstructor
-@Setter
-@Getter
+@Data
 @Embeddable
 public class CompilerBind {
     private String hostPath;

+ 4 - 5
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/CompilerConfig.java

@@ -37,15 +37,14 @@ public class CompilerConfig extends BaseEntity {
     @Length(max = 255, message = "编译名字的最大长度不能超过 255 个字符")
     @Column(nullable = false, unique = true)
     private String name;
-    private String homePath;
     @NotBlank(groups = { ShellCompiler.class}, message = "编译命令不能为空")
     @Length(max = 1000, message = "编译命令长度不能超过 1000 个字符")
+    @Column(columnDefinition="text")
     private String compileCmd;
     @NotBlank(groups = { ShellCompiler.class}, message = "编译器版本命令不能为空")
-    @Length(max = 1000, message = "编译器版本命令长度不能超过 1000 个字符")
-    private String versionCmd;
     @NotBlank(groups = { DockerRunCompiler.class}, message = "编译器版本命令不能为空")
     private String compilerImage;
+
     @ElementCollection(targetClass = CompilerBind.class)
     @LazyCollection(LazyCollectionOption.FALSE)
     @CollectionTable(name = "devops_compiler_config_binds")
@@ -54,7 +53,7 @@ public class CompilerConfig extends BaseEntity {
     @LazyCollection(LazyCollectionOption.FALSE)
     @CollectionTable(name = "devops_compiler_config_envs")
     private List<CompilerEnv> compilerEnvs;
-    @ElementCollection(targetClass = CompilerEnv.class)
+    @ElementCollection(targetClass = CompilerArg.class)
     @LazyCollection(LazyCollectionOption.FALSE)
     @CollectionTable(name = "devops_compiler_config_args")
     private List<CompilerArg> compilerArgs;
@@ -72,6 +71,6 @@ public class CompilerConfig extends BaseEntity {
     }
 
     public CompilerDto getCompilerDto() {
-        return new CompilerDto(this.type, this.name, this.homePath, this.compileCmd, this.compilerImage, this.compilerBinds);
+        return new CompilerDto(this.type, this.name, "", this.compileCmd, this.compilerImage, this.compilerBinds);
     }
 }

+ 7 - 6
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/CompilerEnv.java

@@ -1,10 +1,8 @@
 package cn.reghao.devops.mgr.ops.build.model.po;
 
+import cn.reghao.devops.mgr.ops.build.model.dto.CompilerEnvDto;
 import jakarta.persistence.Embeddable;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
+import lombok.*;
 
 /**
  * @author reghao
@@ -12,9 +10,12 @@ import lombok.Setter;
  */
 @AllArgsConstructor
 @NoArgsConstructor
-@Setter
-@Getter
+@Data
 @Embeddable
 public class CompilerEnv {
     private String env;
+
+    public CompilerEnv(CompilerEnvDto  compilerEnvDto) {
+        this.env = compilerEnvDto.getEnv();
+    }
 }

+ 1 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/docker/model/po/DockerRegistry.java → mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/DockerRegistry.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.mgr.ops.docker.model.po;
+package cn.reghao.devops.mgr.ops.build.model.po;
 
 import cn.reghao.devops.common.docker.model.DockerAuth;
 import cn.reghao.devops.mgr.util.BaseEntity;

+ 0 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/PackerConfig.java

@@ -4,7 +4,6 @@ import cn.reghao.devops.common.docker.model.DockerAuth;
 import cn.reghao.devops.common.msg.constant.PackType;
 import cn.reghao.devops.mgr.ops.build.model.provider.PackerConfigGroupSequenceProvider;
 import cn.reghao.devops.mgr.ops.builder.model.dto.PackerDto;
-import cn.reghao.devops.mgr.ops.docker.model.po.DockerRegistry;
 import cn.reghao.devops.mgr.util.BaseEntity;
 import cn.reghao.jutil.jdk.web.validator.ValidEnum;
 import lombok.Getter;

+ 5 - 5
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/RepoAuthConfig.java

@@ -29,14 +29,14 @@ import jakarta.validation.constraints.Pattern;
 @Entity
 @Table(name = "devops_repo_auth_config")
 public class RepoAuthConfig extends BaseEntity {
-    @ValidEnum(value = RepoType.class, message = "请选择正确的仓库类型")
-    private String type;
+    @ValidEnum(value = RepoAuthType.class, message = "请选择的认证类型")
+    private String authType;
     @Pattern(regexp = "^\\S*$", message = "认证名字不能包含空白符")
     @Length(max = 255, message = "认证名字的最大长度不能超过 255 个字符")
     @Column(nullable = false, unique = true)
     private String name;
-    @ValidEnum(value = RepoAuthType.class, message = "请选择的仓库认证类型")
-    private String authType;
+    @ValidEnum(value = RepoType.class, message = "请选择正确的仓库类型")
+    private String type;
 
     @NotBlank(groups = {HttpRepoAuth.class}, message = "认证用户名不能为空")
     @Length(max = 255, message = "认证用户名的最大长度不能超过 255 个字符")
@@ -59,6 +59,6 @@ public class RepoAuthConfig extends BaseEntity {
     }
 
     public RepoAuth getRepoAuth() {
-        return new RepoAuth(this.type, this.name, this.authType, this.username, this.password, this.rsaPrikey);
+        return new RepoAuth("this.type", this.name, this.authType, this.username, this.password, this.rsaPrikey);
     }
 }

+ 8 - 3
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/CompilerConfigService.java

@@ -1,6 +1,8 @@
 package cn.reghao.devops.mgr.ops.build.service;
 
+import cn.reghao.devops.mgr.ops.build.model.dto.CompilerArgDto;
 import cn.reghao.devops.mgr.ops.build.model.dto.CompilerBindDto;
+import cn.reghao.devops.mgr.ops.build.model.dto.CompilerEnvDto;
 import cn.reghao.devops.mgr.ops.build.model.po.CompilerConfig;
 import cn.reghao.jutil.jdk.web.result.Result;
 
@@ -11,7 +13,10 @@ import cn.reghao.jutil.jdk.web.result.Result;
 public interface CompilerConfigService {
     Result addOrUpdate(CompilerConfig compilerConfig);
     Result delete(int id);
-    String getCompilerVersion(int id);
-    void addDockerBind(CompilerBindDto compilerBindDto);
-    void deleteDockerBind(CompilerBindDto compilerBindDto);
+    Result addContainerBind(CompilerBindDto compilerBindDto);
+    Result deleteContainerBind(CompilerBindDto compilerBindDto);
+    Result addContainerEnv(CompilerEnvDto compilerEnvDto);
+    Result deleteContainerEnv(CompilerEnvDto compilerBindDto);
+    Result addDockerfileArg(CompilerArgDto compilerArgDto);
+    Result deleteDockerfileArg(CompilerArgDto compilerArgDto);
 }

+ 21 - 4
mgr/src/main/java/cn/reghao/devops/mgr/ops/docker/service/DockerRegistryService.java → mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/DockerRegistryService.java

@@ -1,9 +1,12 @@
-package cn.reghao.devops.mgr.ops.docker.service;
+package cn.reghao.devops.mgr.ops.build.service;
 
 import cn.reghao.devops.common.docker.DockerImpl;
 import cn.reghao.devops.common.docker.model.DockerAuth;
+import cn.reghao.devops.mgr.ops.build.db.repository.RepoAuthConfigRepository;
+import cn.reghao.devops.mgr.ops.build.model.dto.DockerAuthDto;
+import cn.reghao.devops.mgr.ops.build.model.po.RepoAuthConfig;
 import cn.reghao.devops.mgr.ops.docker.db.repository.DockerRegistryRepository;
-import cn.reghao.devops.mgr.ops.docker.model.po.DockerRegistry;
+import cn.reghao.devops.mgr.ops.build.model.po.DockerRegistry;
 import cn.reghao.jutil.jdk.web.result.Result;
 import cn.reghao.jutil.jdk.web.result.ResultStatus;
 import org.springframework.stereotype.Service;
@@ -15,12 +18,25 @@ import org.springframework.stereotype.Service;
 @Service
 public class DockerRegistryService {
     private final DockerRegistryRepository dockerAuthRepository;
+    private RepoAuthConfigRepository repoAuthConfigRepository;
 
-    public DockerRegistryService(DockerRegistryRepository dockerAuthRepository) {
+    public DockerRegistryService(DockerRegistryRepository dockerAuthRepository,
+                                 RepoAuthConfigRepository repoAuthConfigRepository) {
         this.dockerAuthRepository = dockerAuthRepository;
+        this.repoAuthConfigRepository = repoAuthConfigRepository;
     }
 
-    public void addOrUpdate(DockerAuth dockerAuth) {
+    public Result addOrUpdate(DockerAuthDto dockerAuthDto) {
+        String repoAuthName = dockerAuthDto.getRepoAuthName();
+        RepoAuthConfig repoAuthConfig = repoAuthConfigRepository.findByName(repoAuthName);
+        if (repoAuthConfig == null) {
+            return Result.fail(String.format("RepoAuthName %s not exists", repoAuthName));
+        }
+
+        DockerAuth dockerAuth = new DockerAuth();
+        dockerAuth.setRegistryUrl(dockerAuthDto.getRegistryUrl());
+        dockerAuth.setUsername(repoAuthConfig.getUsername());
+        dockerAuth.setPassword(repoAuthConfig.getPassword());
         DockerImpl docker = new DockerImpl();
         docker.auth(dockerAuth);
 
@@ -34,6 +50,7 @@ public class DockerRegistryService {
         }
 
         dockerAuthRepository.save(dockerRegistry);
+        return Result.success();
     }
 
     public Result delete(int id) {

+ 84 - 31
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/impl/CompilerConfigServiceImpl.java

@@ -3,9 +3,13 @@ package cn.reghao.devops.mgr.ops.build.service.impl;
 import cn.reghao.devops.mgr.ops.app.db.query.AppBuildQuery;
 import cn.reghao.devops.mgr.ops.app.model.po.AppConfig;
 import cn.reghao.devops.mgr.ops.build.db.repository.CompilerConfigRepository;
+import cn.reghao.devops.mgr.ops.build.model.dto.CompilerArgDto;
 import cn.reghao.devops.mgr.ops.build.model.dto.CompilerBindDto;
+import cn.reghao.devops.mgr.ops.build.model.dto.CompilerEnvDto;
+import cn.reghao.devops.mgr.ops.build.model.po.CompilerArg;
 import cn.reghao.devops.mgr.ops.build.model.po.CompilerBind;
 import cn.reghao.devops.mgr.ops.build.model.po.CompilerConfig;
+import cn.reghao.devops.mgr.ops.build.model.po.CompilerEnv;
 import cn.reghao.devops.mgr.ops.build.service.CompilerConfigService;
 import cn.reghao.devops.mgr.ops.build.model.constant.CompileType;
 import cn.reghao.devops.mgr.util.StringUtil;
@@ -28,13 +32,10 @@ import java.util.stream.Collectors;
 public class CompilerConfigServiceImpl implements CompilerConfigService {
     private final CompilerConfigRepository compilerConfigRepository;
     private final AppBuildQuery appBuildQuery;
-    private final ShellExecutor shellExecutor;
 
-    public CompilerConfigServiceImpl(CompilerConfigRepository compilerConfigRepository, AppBuildQuery appBuildQuery,
-                                     ShellExecutor shellExecutor) {
+    public CompilerConfigServiceImpl(CompilerConfigRepository compilerConfigRepository, AppBuildQuery appBuildQuery) {
         this.compilerConfigRepository = compilerConfigRepository;
         this.appBuildQuery = appBuildQuery;
-        this.shellExecutor = shellExecutor;
     }
 
     @Override
@@ -53,9 +54,7 @@ public class CompilerConfigServiceImpl implements CompilerConfigService {
         }
 
         String compileCmd = compilerConfig.getCompileCmd();
-        String versionCmd = compilerConfig.getVersionCmd();
         entity.setCompileCmd(compileCmd);
-        entity.setVersionCmd(versionCmd);
         Result result = checkBeforeUpdate(compilerConfig);
         if (result.getCode() == ResultStatus.SUCCESS.getCode()) {
             compilerConfigRepository.save(entity);
@@ -90,56 +89,110 @@ public class CompilerConfigServiceImpl implements CompilerConfigService {
     }
 
     @Override
-    public String getCompilerVersion(int id) {
+    public Result addContainerBind(CompilerBindDto compilerBindDto) {
+        int id = compilerBindDto.getId();
         CompilerConfig compilerConfig = compilerConfigRepository.findById(id).orElse(null);
         if (compilerConfig == null) {
-            return "not exist";
+            return Result.fail("CompilerConfig not found");
         }
 
-        if (!compilerConfig.getType().equals(CompileType.shell.getName())) {
-            return "not shell type";
+        CompilerBind compilerBind = new CompilerBind(compilerBindDto);
+        if (!compilerConfig.getCompilerBinds().contains(compilerBind)) {
+            compilerConfig.getCompilerBinds().add(compilerBind);
+            compilerConfigRepository.save(compilerConfig);
+            return Result.result(ResultStatus.SUCCESS);
         }
 
-        String versionCmd = compilerConfig.getVersionCmd();
-        ShellResult shellResult = shellExecutor.exec(versionCmd.split("\\s+"));
-        String html = StringUtil.txtToHtml(shellResult.getResult());
-        return html;
+        return Result.fail("CompilerBind exists");
     }
 
     @Override
-    public void addDockerBind(CompilerBindDto compilerBindDto) {
+    public Result deleteContainerBind(CompilerBindDto compilerBindDto) {
         int id = compilerBindDto.getId();
         CompilerConfig compilerConfig = compilerConfigRepository.findById(id).orElse(null);
         if (compilerConfig == null) {
-            return;
+            return Result.fail("CompilerConfig not found");
         }
 
         String hostPath = compilerBindDto.getHostPath();
-        Map<String, CompilerBind> map = compilerConfig.getCompilerBinds().stream()
-                .collect(Collectors.toMap(CompilerBind::getHostPath, bind -> bind));
-        CompilerBind compilerBind = map.get(hostPath);
-        if (compilerBind == null) {
-            compilerConfig.getCompilerBinds().add(new CompilerBind(compilerBindDto));
+        boolean ret = compilerConfig.getCompilerBinds().removeIf(item -> hostPath.equals(item.getHostPath()));
+        if (ret) {
             compilerConfigRepository.save(compilerConfig);
+            return Result.result(ResultStatus.SUCCESS);
         }
+
+        return Result.fail("CompilerBind not found");
     }
 
     @Override
-    public void deleteDockerBind(CompilerBindDto compilerBindDto) {
-        int id = compilerBindDto.getId();
+    public Result addContainerEnv(CompilerEnvDto compilerEnvDto) {
+        int id = compilerEnvDto.getId();
         CompilerConfig compilerConfig = compilerConfigRepository.findById(id).orElse(null);
         if (compilerConfig == null) {
-            return;
+            return Result.fail("CompilerConfig not found");
         }
 
-        String hostPath = compilerBindDto.getHostPath();
-        Map<String, CompilerBind> map = compilerConfig.getCompilerBinds().stream()
-                .collect(Collectors.toMap(CompilerBind::getHostPath, bind -> bind));
-        CompilerBind compilerBind = map.get(hostPath);
-        if (compilerBind != null) {
-            map.remove(hostPath);
-            compilerConfig.setCompilerBinds(new ArrayList<>(map.values()));
+        CompilerEnv compilerEnv = new CompilerEnv(compilerEnvDto);
+        if (!compilerConfig.getCompilerEnvs().contains(compilerEnv)) {
+            compilerConfig.getCompilerEnvs().add(compilerEnv);
+            compilerConfigRepository.save(compilerConfig);
+            return Result.result(ResultStatus.SUCCESS);
+        }
+
+        return Result.fail("CompilerEnv exists");
+    }
+
+    @Override
+    public Result deleteContainerEnv(CompilerEnvDto compilerEnvDto) {
+        int id = compilerEnvDto.getId();
+        CompilerConfig compilerConfig = compilerConfigRepository.findById(id).orElse(null);
+        if (compilerConfig == null) {
+            return Result.fail("CompilerConfig not found");
+        }
+
+        String env = compilerEnvDto.getEnv();
+        boolean ret = compilerConfig.getCompilerEnvs().removeIf(item -> env.equals(item.getEnv()));
+        if (ret) {
+            compilerConfigRepository.save(compilerConfig);
+            return Result.result(ResultStatus.SUCCESS);
+        }
+
+        return Result.fail("CompilerEnv not found");
+    }
+
+    @Override
+    public Result addDockerfileArg(CompilerArgDto compilerArgDto) {
+        int id = compilerArgDto.getId();
+        CompilerConfig compilerConfig = compilerConfigRepository.findById(id).orElse(null);
+        if (compilerConfig == null) {
+            return Result.fail("CompilerConfig not found");
+        }
+
+        CompilerArg compilerArg = new CompilerArg(compilerArgDto);
+        if (!compilerConfig.getCompilerArgs().contains(compilerArg)) {
+            compilerConfig.getCompilerArgs().add(compilerArg);
             compilerConfigRepository.save(compilerConfig);
+            return Result.result(ResultStatus.SUCCESS);
         }
+
+        return Result.fail("CompilerArg exists");
+    }
+
+    @Override
+    public Result deleteDockerfileArg(CompilerArgDto compilerArgDto) {
+        int id = compilerArgDto.getId();
+        CompilerConfig compilerConfig = compilerConfigRepository.findById(id).orElse(null);
+        if (compilerConfig == null) {
+            return Result.fail("CompilerConfig not found");
+        }
+
+        String argName = compilerArgDto.getArgName();
+        boolean ret = compilerConfig.getCompilerArgs().removeIf(item -> argName.equals(item.getArgName()));
+        if (ret) {
+            compilerConfigRepository.save(compilerConfig);
+            return Result.result(ResultStatus.SUCCESS);
+        }
+
+        return Result.fail("CompilerArg not found");
     }
 }

+ 1 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/impl/PackerConfigServiceImpl.java

@@ -3,7 +3,7 @@ package cn.reghao.devops.mgr.ops.build.service.impl;
 import cn.reghao.devops.common.msg.constant.PackType;
 import cn.reghao.devops.mgr.ops.app.db.query.AppBuildQuery;
 import cn.reghao.devops.mgr.ops.build.db.repository.PackerConfigRepository;
-import cn.reghao.devops.mgr.ops.docker.model.po.DockerRegistry;
+import cn.reghao.devops.mgr.ops.build.model.po.DockerRegistry;
 import cn.reghao.devops.mgr.ops.build.model.po.PackerConfig;
 import cn.reghao.devops.mgr.ops.build.service.PackerConfigService;
 import cn.reghao.jutil.jdk.web.result.Result;

+ 1 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/model/vo/BuildConfigSnapshot.java

@@ -48,7 +48,7 @@ public class BuildConfigSnapshot {
         this.compileType = appConfig.getCompilerConfig().getType();
         this.compileName = appConfig.getCompilerConfig().getName();
         this.compileScript = appConfig.getCompilerConfig().getCompileCmd();
-        this.homePath = appConfig.getCompilerConfig().getHomePath();
+        this.homePath = "";
 
         this.packType = appConfig.getPackerConfig().getType();
         this.packName = appConfig.getPackerConfig().getName();

+ 1 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/service/PipelineContext.java

@@ -5,7 +5,7 @@ import cn.reghao.devops.mgr.ops.builder.model.po.AppBuilding;
 import cn.reghao.devops.mgr.ops.app.model.po.AppConfig;
 import cn.reghao.devops.mgr.ops.builder.model.LocalBuildDir;
 import cn.reghao.devops.mgr.ops.builder.tool.repo.CommitInfo;
-import cn.reghao.devops.mgr.ops.docker.model.po.DockerRegistry;
+import cn.reghao.devops.mgr.ops.build.model.po.DockerRegistry;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 2
mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/service/impl/DeployAppImpl.java

@@ -12,11 +12,10 @@ import cn.reghao.devops.mgr.ops.app.db.query.AppDeployQuery;
 import cn.reghao.devops.mgr.ops.builder.model.po.AppBuilding;
 import cn.reghao.devops.mgr.ops.app.model.po.AppConfig;
 import cn.reghao.devops.mgr.ops.app.model.po.AppDeployConfig;
-import cn.reghao.devops.mgr.ops.builder.model.po.BuildLog;
 import cn.reghao.devops.mgr.ops.app.service.AppDeployService;
 import cn.reghao.devops.mgr.ops.builder.service.DeployApp;
 import cn.reghao.devops.mgr.ops.builder.service.task.OssDeployTask;
-import cn.reghao.devops.mgr.ops.docker.model.po.DockerRegistry;
+import cn.reghao.devops.mgr.ops.build.model.po.DockerRegistry;
 import cn.reghao.devops.mgr.ops.machine.service.MachineQuery;
 import cn.reghao.devops.mgr.ws.WebSocketSessionManager;
 import cn.reghao.jutil.jdk.thread.ThreadPoolWrapper;

+ 1 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/tool/compiler/DockerRunCompiler.java

@@ -6,7 +6,7 @@ import cn.reghao.devops.mgr.ops.build.model.po.CompilerEnv;
 import cn.reghao.devops.mgr.ops.builder.tool.DockerBuild;
 import cn.reghao.devops.mgr.ops.builder.service.PipelineContext;
 import cn.reghao.devops.mgr.ops.build.model.constant.CompileType;
-import cn.reghao.devops.mgr.ops.docker.model.po.DockerRegistry;
+import cn.reghao.devops.mgr.ops.build.model.po.DockerRegistry;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 

+ 0 - 24
mgr/src/main/java/cn/reghao/devops/mgr/ops/builder/tool/packer/EmptyPack.java

@@ -1,24 +0,0 @@
-package cn.reghao.devops.mgr.ops.builder.tool.packer;
-
-import cn.reghao.devops.common.msg.constant.PackType;
-import cn.reghao.devops.mgr.ops.build.model.po.PackerConfig;
-import cn.reghao.devops.mgr.ops.builder.service.PipelineContext;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-/**
- * @author reghao
- * @date 2026-01-10 02:28:35
- */
-@Slf4j
-@Component
-public class EmptyPack implements CodePacker {
-    @Override
-    public void pack(PipelineContext ctx, PackerConfig packerConfig) {
-    }
-
-    @Override
-    public String supportType() {
-        return PackType.none.getName();
-    }
-}

+ 1 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/docker/controller/DockerController.java

@@ -18,7 +18,7 @@ import java.util.List;
  */
 @Tag(name = "机器节点页面和接口")
 @RestController
-@RequestMapping("/api/devops/docker")
+@RequestMapping("/api/devops/build/docker")
 public class DockerController {
     private final DockerImageService dockerImageService;
 

+ 1 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/docker/db/repository/DockerRegistryRepository.java

@@ -1,6 +1,6 @@
 package cn.reghao.devops.mgr.ops.docker.db.repository;
 
-import cn.reghao.devops.mgr.ops.docker.model.po.DockerRegistry;
+import cn.reghao.devops.mgr.ops.build.model.po.DockerRegistry;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 /**

+ 2 - 37
mgr/src/main/java/cn/reghao/devops/mgr/ops/util/BuilderInit.java

@@ -1,18 +1,11 @@
 package cn.reghao.devops.mgr.ops.util;
 
-import cn.reghao.devops.mgr.admin.service.UserMessageService;
 import cn.reghao.devops.mgr.config.AppProperties;
-import cn.reghao.devops.mgr.ops.build.db.repository.CompilerConfigRepository;
-import cn.reghao.devops.mgr.ops.build.model.po.CompilerConfig;
 import cn.reghao.devops.mgr.ops.build.service.BuildDirService;
-import cn.reghao.devops.mgr.ops.build.model.constant.CompileType;
-import cn.reghao.jutil.jdk.shell.ShellExecutor;
-import cn.reghao.jutil.jdk.shell.ShellResult;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
-import java.util.List;
 
 /**
  * @author reghao
@@ -22,23 +15,15 @@ import java.util.List;
 @Service
 public class BuilderInit {
     private final AppProperties appProperties;
-    private final ShellExecutor shellExecutor;
     private final BuildDirService buildDirService;
-    private final CompilerConfigRepository compilerConfigRepository;
-    private final UserMessageService userMessageService;
 
-    public BuilderInit(AppProperties appProperties, ShellExecutor shellExecutor, BuildDirService buildDirService,
-                       CompilerConfigRepository compilerConfigRepository,UserMessageService userMessageService) {
+    public BuilderInit(AppProperties appProperties, BuildDirService buildDirService) {
         this.appProperties = appProperties;
-        this.shellExecutor = shellExecutor;
         this.buildDirService = buildDirService;
-        this.compilerConfigRepository = compilerConfigRepository;
-        this.userMessageService = userMessageService;
     }
 
     public void init() {
         initBuildDir();
-        checkCompilerConfig();
     }
 
     private void initBuildDir() {
@@ -52,29 +37,9 @@ public class BuilderInit {
             try {
                 buildDirService.init(baseDir);
             } catch (Exception e) {
-                log.error("初始化本地构建目录失败,devops-mgr 结束运行");
-                e.printStackTrace();
+                log.error("初始化本地构建目录失败,devops-mgr 结束运行: {}", e.getMessage());
                 System.exit(1);
             }
         }
     }
-
-    private void checkCompilerConfig() {
-        List<CompilerConfig> list = compilerConfigRepository.findAll();
-        for (CompilerConfig compilerConfig : list) {
-            if (compilerConfig.getType().equals(CompileType.none.getName())) {
-                continue;
-            }
-
-            if (compilerConfig.getType().equals(CompileType.shell.getName())) {
-                String versionCmd = compilerConfig.getVersionCmd();
-                ShellResult shellResult = shellExecutor.exec(versionCmd.split("\\s+"));
-                if (shellResult.getExitCode() != 0) {
-                    String title = "编译配置异常";
-                    String content = shellResult.getResult();
-                    userMessageService.sendUserMessage(title, content);
-                }
-            }
-        }
-    }
 }