main
黄海 10 months ago
parent fd7acc90c1
commit 1b7f0a066c

@ -28,22 +28,6 @@ public class LoginPersonController extends Controller {
renderJson(jo);
}
@Before({POST.class})
public void doLoginV2(String username, String password, String platform) {
try {
JSONObject jo = model.doLogin(username, password, platform, getResponse());
RetBean ret = new RetBean(RetBean.SUCCESS, "成功!", jo);
renderJson(ret);
} catch (Exception err) {
JSONObject jo = new JSONObject();
jo.put("success", false);
jo.put("msg", err.getMessage());
RetBean ret = new RetBean(RetBean.ERROR, "失败!", jo);
renderJson(ret);
}
}
@Before({GET.class})
public void logout() {
CookieUtil.remove(getRequest(), getResponse(), "identity_id");

@ -0,0 +1,35 @@
package Util;
public class ProjectBean {
private String devProjectName;
private String publishProjectName;
private int id;
public String getDevProjectName() {
return devProjectName;
}
public void setDevProjectName(String devProjectName) {
this.devProjectName = devProjectName;
}
public String getPublishProjectName() {
return publishProjectName;
}
public void setPublishProjectName(String publishProjectName) {
this.publishProjectName = publishProjectName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String toString() {
return "ProjectBean [devProjectName=" + devProjectName + ", publishProjectName=" + publishProjectName + ", id=" + id + "]";
}
}

@ -9,25 +9,28 @@ import com.jfinal.kit.PathKit;
import com.jfinal.kit.StrKit;
import java.io.File;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
public class PublishUtil {
/**
* Docker
* docker images --format "{{.Repository}}:{{.Tag}}" | xargs -r docker rmi -f
*
docker login --username= registry.cn-hangzhou.aliyuncs.com --password DsideaL4r5t6y7u
docker login --username=驿 registry.cn-hangzhou.aliyuncs.com --password=ylt5033.
* docker login --username= registry.cn-hangzhou.aliyuncs.com --password DsideaL4r5t6y7u
* docker login --username=驿 registry.cn-hangzhou.aliyuncs.com --password=ylt5033.
* <p>
* #
* docker search registry.cn-hangzhou.aliyuncs.com/yltcharge/zhu-que:20240903
* #
* docker pull registry.cn-hangzhou.aliyuncs.com/yltcharge/zhu-que:20240903
*
docker pull registry.cn-hangzhou.aliyuncs.com/dsideal/jdk:21
docker tag 19a54d2204aa registry.cn-hangzhou.aliyuncs.com/yltcharge/jdk:21
docker push registry.cn-hangzhou.aliyuncs.com/yltcharge/jdk:21
* <p>
* docker pull registry.cn-hangzhou.aliyuncs.com/dsideal/jdk:21
* 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) throws Exception {
System.out.println("正在生成" + projectName + "的镜像...");
@ -143,11 +146,11 @@ public class PublishUtil {
ssh.exec(cmd);
//删除所有镜像
cmd="docker rmi $(docker images -q)";
cmd = "docker rmi $(docker images -q)";
ssh.exec(cmd);
//获取最新打包后的镜像ID
cmd = "docker images --format \"{{.Repository}} {{.Tag}} {{.ID}} {{.CreatedAt}}\" | grep "+projectName+" | head -n1 | awk '{print $3}'";
cmd = "docker images --format \"{{.Repository}} {{.Tag}} {{.ID}} {{.CreatedAt}}\" | grep " + projectName + " | head -n1 | awk '{print $3}'";
Kv kv = ssh.exec(cmd);
String imageId = kv.getStr("message").replace("[", "").replace("]", "");
System.out.println("镜像打包完成镜像ID=" + imageId);
@ -172,4 +175,52 @@ public class PublishUtil {
ssh.disconnect();
System.out.println("恭喜,镜像打包成功!");
}
/**
*
* @return
* @throws IOException
*/
public static List<String> getProjectNames() throws IOException {
String basedir = new File(System.getProperty("user.dir")).getCanonicalPath();
//获取到的值: D:\dsWork\dsProject
//在这个目录下遍历所有的子目录并且需要以ds开头而且不能是dsBuild目录
File directory = new File(basedir);
List<String> dirList = new ArrayList<>();
// 获取目录下的所有文件和子目录
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
// 确保是目录
if (file.isDirectory()) {
// 获取目录名称
String dirName = file.getName();
// 检查目录名称是否以"ds"开头且不是"dsBuild"
if (dirName.startsWith("ds") && !dirName.equals("dsBuild")) {
dirList.add(file.getAbsolutePath());
}
}
}
}
return dirList;
}
/**
*
* @param pathName
* @return
*/
public static String getPublishProjectName(String pathName){
//遍历 pathName的每个字符如果是不是大写字母就照抄下来如果是大写字母就变成小写字母并且在小写字母前面加上下划线_
StringBuilder sb = new StringBuilder();
for (int i = 0; i < pathName.length(); i++) {
char c = pathName.charAt(i);
if (Character.isUpperCase(c)) {
sb.append("_").append(Character.toLowerCase(c));
} else {
sb.append(c);
}
}
return sb.toString();
}
}

@ -0,0 +1,68 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import Util.*;
public class publishAll {
public static List<ProjectBean> listProject = new ArrayList<>();
/**
* 1JAVA2WEB
* @return
* @throws IOException
*/
public static int getProjectAttribute(int id) {
for (ProjectBean projectBean : listProject) {
if(projectBean.getId() == id){
//String devprojectBean.getDevProjectName()
break;
}
}
return 0;
}
/**
*
*/
public static void userSelectProject() {
Scanner scanner = new Scanner(System.in); // 创建Scanner对象来读取控制台输入
System.out.println("请选择您本次要发布的项目编号:");
for (ProjectBean projectBean : listProject) {
System.out.print(projectBean.getId() + ":" + projectBean.getDevProjectName()+" ");
}
System.out.println();
int choice = scanner.nextInt(); // 读取用户输入的整数
//输出choice对应的项目名称
for (ProjectBean projectBean : listProject) {
if (projectBean.getId() == choice) {
System.out.println("您选择的项目是:" + projectBean.getDevProjectName());
break;
}
}
scanner.close(); // 关闭Scanner对象
}
public static void main(String[] args) throws IOException {
//1、探测当前目录下有哪些以ds开头的目录这些目录都是待发布的项目
List<String> projectNames = PublishUtil.getProjectNames();
int idx = 0;
for (String projectName : projectNames) {
idx++;
//2、找到projectName的最后一个\符号截取从它开始到结尾的子串这个就是我们所谓的代码项目名但要注意代码项目名需要转换后才是发布项目名因为K8S的项目不允许有大写字母
String devProjectName = projectName.substring(projectName.lastIndexOf("\\") + 1);
String publishProjectName = PublishUtil.getPublishProjectName(devProjectName);
ProjectBean pb = new ProjectBean();
pb.setDevProjectName(devProjectName);
pb.setPublishProjectName(publishProjectName);
pb.setId(idx);
listProject.add(pb);
}
//让用户选择要发布的项目
userSelectProject();
}
}

@ -1,12 +1,11 @@
_______ ______ __ __
/ \ / \ / | _ / |
$$$$$$$ | _______ /$$$$$$ |$$ | / \ $$ |
$$ | $$ | / |$$ | _$$/ $$ |/$ \$$ |
$$ | $$ |/$$$$$$$/ $$ |/ |$$ /$$$ $$ |
$$ | $$ |$$ \ $$ |$$$$ |$$ $$/$$ $$ |
$$ |__$$ | $$$$$$ |$$ \__$$ |$$$$/ $$$$ |
$$ $$/ / $$/ $$ $$/ $$$/ $$$ |
$$$$$$$/ $$$$$$$/ $$$$$$/ $$/ $$/
$$\ $$$$$$\
$$ | $$ __$$\
$$$$$$$ | $$$$$$$\ $$ / \__|$$\ $$\ $$\
$$ __$$ |$$ _____|$$ |$$$$\ $$ | $$ | $$ |
$$ / $$ |\$$$$$$\ $$ |\_$$ |$$ | $$ | $$ |
$$ | $$ | \____$$\ $$ | $$ |$$ | $$ | $$ |
\$$$$$$$ |$$$$$$$ |\$$$$$$ |\$$$$$\$$$$ |
\_______|\_______/ \______/ \_____\____/
power by http://patorjk.com/software/taag/
Loading…
Cancel
Save