feat(加入docker-java): 加入docker-java

This commit is contained in:
ovo 2024-12-27 18:24:11 +08:00
parent 45b2eea3d2
commit 627b12f099
2 changed files with 55 additions and 5 deletions

View File

@ -1,14 +1,17 @@
package com.guwan.backend.controller;
import com.github.dockerjava.api.model.Container;
import com.github.dockerjava.api.model.Image;
import com.github.dockerjava.api.command.CreateContainerCmd;
import com.github.dockerjava.api.model.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.model.Info;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.List;
@ -57,4 +60,43 @@ public class DockerController {
System.out.println("name = " + Arrays.toString(container.getNames())));
return exec;
}
@GetMapping("/create")
public void create() throws IOException {
String javaFilePath = "D:\\00_桌面\\demo.java"; // 这里填入 Java 文件路径
File javaFile = new File(javaFilePath);
Path localDir = Files.createTempDirectory("docker-java");
File localJavaFile = new File(localDir.toFile(), "Main.java");
Files.copy(javaFile.toPath(), localJavaFile.toPath());
String imageName = "openjdk:8"; // 使用官方 OpenJDK 11 镜像
HostConfig hostConfig = HostConfig.newHostConfig()
.withBinds(new Bind(localDir.toString(), new com.github.dockerjava.api.model.Volume("/java"))); // 绑定挂载
// 启动容器
String containerId = dockerClient.createContainerCmd(imageName)
.withCmd("bash", "-c", "javac /java/Main.java && java -cp /java Main && tail -f /dev/null")
.withHostConfig(hostConfig)
.withName("java-app-container")
.exec().getId();
dockerClient.startContainerCmd(containerId).exec();
System.out.println("Container started. Check the output in Docker.");
}
}

View File

@ -43,7 +43,7 @@ public class Demo {
String filePath = "D:\\00_桌面\\1.txt";
String filePath = "D:\\00_桌面\\demo\\张瑞杰.txt";
double[] doubles = readFileToDoubleArray(filePath);
@ -52,6 +52,14 @@ public class Demo {
// double[] doubles = {};
// double数组转float数组
// String feature = "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";
// byte[] featureData = Base64.getDecoder().decode(feature);
//
// //把byte数组转成float数组
// float[] floats = byteArrayToFloatArray(featureData);
//
// System.out.println("floats = " + Arrays.toString(floats));
float[] floatArray = doubleArrayToFloatArray(doubles);