From bbb00b08ef47b15f8d61f1d2ec374f13618813e3 Mon Sep 17 00:00:00 2001 From: opensnail <598092184@qq.com> Date: Wed, 18 Dec 2024 22:03:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:(unify):=20=E6=96=B0=E5=A2=9E=E5=AE=B9?= =?UTF-8?q?=E5=99=A8=E5=92=8C=E9=95=9C=E5=83=8F=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../snailjob/server/common/alarm/AbstractAlarm.java | 2 ++ .../server/web/service/impl/DockerServiceImpl.java | 10 ++++++---- .../server/web/service/impl/PythonServiceImpl.java | 10 +++++++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractAlarm.java b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractAlarm.java index 902d6e1f3..0e4827e9c 100644 --- a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractAlarm.java +++ b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/alarm/AbstractAlarm.java @@ -1,6 +1,8 @@ package com.aizuda.snailjob.server.common.alarm; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.file.FileSystemUtil; import com.aizuda.snailjob.common.core.alarm.Alarm; import com.aizuda.snailjob.common.core.alarm.AlarmContext; import com.aizuda.snailjob.common.core.alarm.SnailJobAlarmFactory; diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/DockerServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/DockerServiceImpl.java index 71623f443..d2ce47312 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/DockerServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/DockerServiceImpl.java @@ -19,10 +19,7 @@ import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.async.ResultCallback; import com.github.dockerjava.api.async.ResultCallbackTemplate; import com.github.dockerjava.api.command.*; -import com.github.dockerjava.api.model.Container; -import com.github.dockerjava.api.model.ContainerPort; -import com.github.dockerjava.api.model.Frame; -import com.github.dockerjava.api.model.Image; +import com.github.dockerjava.api.model.*; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import lombok.RequiredArgsConstructor; @@ -77,6 +74,11 @@ public class DockerServiceImpl implements DockerService { CreateContainerResponse container = dockerClient .createContainerCmd(image) .withName(containerName) + .withEnv() + .withExposedPorts() +// .withHealthcheck() + +// .withHostName(HostConfig) .withLabels(labels) .exec(); diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/PythonServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/PythonServiceImpl.java index 3b7c298f8..2f30d3298 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/PythonServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/PythonServiceImpl.java @@ -15,7 +15,9 @@ import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Service @@ -98,7 +100,7 @@ public class PythonServiceImpl implements PythonService { List dockerfileList = FileUtil.loopFiles(workdir, pathname -> pathname.getName().equals(MAIN_PY) || pathname.getName().endsWith(REQUIREMENTS_TXT)); - List mainFiles = StreamUtils.filter(dockerfileList, file -> file.getName().equals(MAIN_PY)); + List mainFiles = StreamUtils.filter(dockerfileList, file -> file.getName().equals(MAIN_PY) && !file.getPath().contains("packages")); Assert.isFalse(mainFiles.isEmpty(), () -> new SnailJobServerException("不存在{}文件", MAIN_PY)); Assert.isTrue(mainFiles.size() == 1, () -> new SnailJobServerException("存在多个{}}文件", MAIN_PY)); @@ -125,8 +127,14 @@ public class PythonServiceImpl implements PythonService { System.out.println("Script exited with code: " + pipExitCode); return false; } + + // todo 从数据库读数据 + Map env = new HashMap<>(); + env.put("SNAIL_HOST_PORT", "17890"); + // 构建命令 ProcessBuilder processBuilder = new ProcessBuilder(Lists.newArrayList(split[1].trim(), mainFiles.get(0).getPath())); + processBuilder.environment().putAll(env); processBuilder.redirectErrorStream(true); // 启动进程