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); // 启动进程