From f4377104af8b19b42fb571a5faf9bbfefe1f7a85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Wed, 25 Sep 2024 13:47:36 +0800 Subject: [PATCH] 'commit' --- dsBuild/src/main/java/Publish.java | 10 ++++++---- dsBuild/src/main/java/Util/PublishUtil.java | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/dsBuild/src/main/java/Publish.java b/dsBuild/src/main/java/Publish.java index 1244e7a4..04c7bee9 100644 --- a/dsBuild/src/main/java/Publish.java +++ b/dsBuild/src/main/java/Publish.java @@ -36,7 +36,7 @@ public class Publish { System.out.println(); //让用户选择使用哪个配置文件进行打镜像? //这个项目下有以application_?.yaml形式的配置文件,分配ID为1,2,3,...,让用户选择使用哪个进行镜像打包 - String choiceConfig = PublishUtil.userSelectConfig(listProject,choiceProject); + String choiceConfig = PublishUtil.userSelectConfig(listProject, choiceProject); //这个项目是什么类型? String projectAttribute = PublishUtil.getProjectAttribute(choiceProject, listProject); @@ -47,8 +47,8 @@ public class Publish { String basedir = new File(System.getProperty("user.dir")).getCanonicalPath(); workingPath = basedir + "\\" + projectBean.getDevProjectName() + "\\"; projectName = projectBean.getPublishProjectName(); - if (FileUtil.exist(workingPath + "\\lib")) { - localLibPath = workingPath + "\\lib\\"; + if (FileUtil.exist(workingPath + "lib")) { + localLibPath = workingPath + "lib\\"; } break; } @@ -57,6 +57,8 @@ public class Publish { isStatic = true; } //开始打包 - PublishUtil.publish(projectName, isStatic, workingPath, localLibPath, choiceWarehouse,choiceConfig); + String result = PublishUtil.publish(projectName, isStatic, workingPath, localLibPath, choiceWarehouse, choiceConfig); + + System.out.println("测试运行一个容器吧,比如:docker run --name " + result.split(":")[0] + " -p 8001:8001 -d " + result); } } diff --git a/dsBuild/src/main/java/Util/PublishUtil.java b/dsBuild/src/main/java/Util/PublishUtil.java index 7ee0a2e0..307c5706 100644 --- a/dsBuild/src/main/java/Util/PublishUtil.java +++ b/dsBuild/src/main/java/Util/PublishUtil.java @@ -47,7 +47,7 @@ public class PublishUtil { * docker tag 19a54d2204aa registry.cn-hangzhou.aliyuncs.com/yltcharge/jdk:21 * docker push registry.cn-hangzhou.aliyuncs.com/yltcharge/jdk:21 */ - public static void publish(String projectName, boolean isStatic, String workingPath, String localLibPath, Kv choiceWarehouse, String choiceConfig) throws Exception { + public static String publish(String projectName, boolean isStatic, String workingPath, String localLibPath, Kv choiceWarehouse, String choiceConfig) throws Exception { System.out.println("正在生成" + projectName + "的镜像..."); //配置文件 String path = PathKit.getRootClassPath() + "\\publishImage.json"; @@ -66,8 +66,11 @@ public class PublishUtil { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String newVersion = now.format(formatter); - newVersion = choiceConfig + "_" + newVersion.replace(" ", "").replace("-", "").replace(":", ""); - + if (!StrKit.isBlank(choiceConfig)) { + newVersion = choiceConfig + "_" + newVersion.replace(" ", "").replace("-", "").replace(":", ""); + } else { + newVersion = newVersion.replace(" ", "").replace("-", "").replace(":", ""); + } //准备工作 String remotePath = "/usr/local/" + projectName + "/"; ssh.exec("rm -rf " + remotePath); @@ -148,6 +151,10 @@ public class PublishUtil { System.out.println(cmd); System.out.println("环境变量修改成功!"); + //如果容器正在运行中,那么容器对应的镜像删除失败 + cmd="docker rm -f $(docker ps -aq)"; + ssh.exec(cmd); + //删除所有镜像 cmd = "docker rmi -f $(docker images -q)"; ssh.exec(cmd); @@ -181,6 +188,8 @@ public class PublishUtil { ssh.disconnect(); System.out.println("恭喜,镜像打包成功!"); + + return projectName + ":" + newVersion; } /** @@ -204,7 +213,7 @@ public class PublishUtil { // 获取目录名称 String dirName = file.getName(); // 检查目录名称是否以"ds"开头且不是"dsBuild" - if (dirName.startsWith("ds") && !dirName.equals("dsBuild")) { + if (dirName.startsWith("ds") && !dirName.equals("dsBuild") && !dirName.contains("-")) { dirList.add(file.getAbsolutePath()); } }