|
@@ -1,20 +1,16 @@
|
|
|
package cn.reghao.autodop.dagent.app;
|
|
package cn.reghao.autodop.dagent.app;
|
|
|
|
|
|
|
|
import cn.reghao.autodop.common.dagent.app.api.data.AppStatus;
|
|
import cn.reghao.autodop.common.dagent.app.api.data.AppStatus;
|
|
|
-import cn.reghao.autodop.common.dagent.app.api.data.DeployResult;
|
|
|
|
|
import cn.reghao.autodop.common.dagent.app.api.data.deploy.AppDeployArgs;
|
|
import cn.reghao.autodop.common.dagent.app.api.data.deploy.AppDeployArgs;
|
|
|
import cn.reghao.autodop.common.dagent.app.api.data.log.AppLogArgs;
|
|
import cn.reghao.autodop.common.dagent.app.api.data.log.AppLogArgs;
|
|
|
import cn.reghao.autodop.common.dagent.app.api.data.log.LogConfig;
|
|
import cn.reghao.autodop.common.dagent.app.api.data.log.LogConfig;
|
|
|
import cn.reghao.autodop.common.dagent.app.api.data.log.LogFile;
|
|
import cn.reghao.autodop.common.dagent.app.api.data.log.LogFile;
|
|
|
import cn.reghao.autodop.common.dagent.app.api.data.log.LogType;
|
|
import cn.reghao.autodop.common.dagent.app.api.data.log.LogType;
|
|
|
-import cn.reghao.autodop.common.dagent.machine.Machine;
|
|
|
|
|
import cn.reghao.autodop.common.docker.Docker;
|
|
import cn.reghao.autodop.common.docker.Docker;
|
|
|
import cn.reghao.autodop.common.docker.exception.DockerException;
|
|
import cn.reghao.autodop.common.docker.exception.DockerException;
|
|
|
import cn.reghao.autodop.common.docker.pojo.Config;
|
|
import cn.reghao.autodop.common.docker.pojo.Config;
|
|
|
import cn.reghao.autodop.common.docker.pojo.State;
|
|
import cn.reghao.autodop.common.docker.pojo.State;
|
|
|
import cn.reghao.autodop.common.docker.pojo.result.ContainerInfo;
|
|
import cn.reghao.autodop.common.docker.pojo.result.ContainerInfo;
|
|
|
-import cn.reghao.autodop.common.result.Result;
|
|
|
|
|
-import cn.reghao.autodop.common.result.ResultStatus;
|
|
|
|
|
import cn.reghao.autodop.common.utils.DateTimeConverter;
|
|
import cn.reghao.autodop.common.utils.DateTimeConverter;
|
|
|
import cn.reghao.autodop.common.utils.ExceptionUtil;
|
|
import cn.reghao.autodop.common.utils.ExceptionUtil;
|
|
|
|
|
|
|
@@ -26,24 +22,28 @@ import java.util.List;
|
|
|
* @date 2021-02-22 16:21:37
|
|
* @date 2021-02-22 16:21:37
|
|
|
*/
|
|
*/
|
|
|
public class DockerAppServiceImpl implements AppService {
|
|
public class DockerAppServiceImpl implements AppService {
|
|
|
|
|
+ private String machineId;
|
|
|
|
|
+ private String machineIpv4;
|
|
|
private final long sleep = 10_000;
|
|
private final long sleep = 10_000;
|
|
|
|
|
|
|
|
|
|
+ public DockerAppServiceImpl(String machineId, String machineIpv4) {
|
|
|
|
|
+ this.machineId = machineId;
|
|
|
|
|
+ this.machineIpv4 = machineIpv4;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
- public DeployResult deploy(AppDeployArgs appDeployArgs) throws DockerException {
|
|
|
|
|
|
|
+ public AppStatus deploy(AppDeployArgs appDeployArgs) throws DockerException {
|
|
|
String appId = appDeployArgs.getAppId();
|
|
String appId = appDeployArgs.getAppId();
|
|
|
String packagePath = appDeployArgs.getPackagePath();
|
|
String packagePath = appDeployArgs.getPackagePath();
|
|
|
Config dockerConfig = appDeployArgs.getDockerConfig();
|
|
Config dockerConfig = appDeployArgs.getDockerConfig();
|
|
|
|
|
|
|
|
try (Docker docker = new Docker()) {
|
|
try (Docker docker = new Docker()) {
|
|
|
- String repoTag = appDeployArgs.getPackagePath();
|
|
|
|
|
- docker.pull(repoTag);
|
|
|
|
|
|
|
+ docker.pull(packagePath);
|
|
|
String containerId = docker.run(appId, packagePath, dockerConfig);
|
|
String containerId = docker.run(appId, packagePath, dockerConfig);
|
|
|
Thread.sleep(sleep);
|
|
Thread.sleep(sleep);
|
|
|
|
|
|
|
|
ContainerInfo containerInfo = docker.inspectContainer(containerId);
|
|
ContainerInfo containerInfo = docker.inspectContainer(containerId);
|
|
|
- AppStatus appStatus = getAppStatus(appId, containerInfo);
|
|
|
|
|
- Result result = new Result(ResultStatus.SUCCESS);
|
|
|
|
|
- return new DeployResult(appDeployArgs.getBuildLogId(), result, appStatus);
|
|
|
|
|
|
|
+ return getAppStatus(appId, containerInfo);
|
|
|
} catch (InterruptedException e) {
|
|
} catch (InterruptedException e) {
|
|
|
throw new DockerException(ExceptionUtil.errorMsg(e));
|
|
throw new DockerException(ExceptionUtil.errorMsg(e));
|
|
|
}
|
|
}
|
|
@@ -51,8 +51,10 @@ public class DockerAppServiceImpl implements AppService {
|
|
|
|
|
|
|
|
private AppStatus getAppStatus(String appId, ContainerInfo containerInfo) {
|
|
private AppStatus getAppStatus(String appId, ContainerInfo containerInfo) {
|
|
|
AppStatus appStatus = new AppStatus();
|
|
AppStatus appStatus = new AppStatus();
|
|
|
- appStatus.setMachineId(Machine.machineId());
|
|
|
|
|
|
|
+ appStatus.setMachineId(machineId);
|
|
|
|
|
+ appStatus.setMachineIpv4(machineIpv4);
|
|
|
appStatus.setAppId(appId);
|
|
appStatus.setAppId(appId);
|
|
|
|
|
+ appStatus.setPackagePath(containerInfo.getConfig().getImage());
|
|
|
|
|
|
|
|
State state = containerInfo.getState();
|
|
State state = containerInfo.getState();
|
|
|
boolean isRunning = state.isRunning();
|
|
boolean isRunning = state.isRunning();
|