Browse Source

update common.docker

reghao 1 year ago
parent
commit
9ecbd02e56
25 changed files with 21 additions and 316 deletions
  1. 4 5
      common/src/main/java/cn/reghao/devops/common/docker/Docker.java
  2. 8 15
      common/src/main/java/cn/reghao/devops/common/docker/DockerImpl.java
  3. 1 1
      common/src/main/java/cn/reghao/devops/common/docker/model/Config.java
  4. 1 1
      common/src/main/java/cn/reghao/devops/common/docker/model/DockerAuth.java
  5. 1 1
      common/src/main/java/cn/reghao/devops/common/docker/model/ExposedPorts.java
  6. 1 1
      common/src/main/java/cn/reghao/devops/common/docker/model/Healthcheck.java
  7. 1 1
      common/src/main/java/cn/reghao/devops/common/docker/model/HostConfig.java
  8. 1 1
      common/src/main/java/cn/reghao/devops/common/docker/model/Labels.java
  9. 1 1
      common/src/main/java/cn/reghao/devops/common/docker/model/NetworkingConfig.java
  10. 1 1
      common/src/main/java/cn/reghao/devops/common/docker/model/RestartPolicy.java
  11. 1 1
      common/src/main/java/cn/reghao/devops/common/docker/model/Volumes.java
  12. 0 16
      common/src/main/java/cn/reghao/devops/common/docker/po/ContainerInfo.java
  13. 0 18
      common/src/main/java/cn/reghao/devops/common/docker/po/Data.java
  14. 0 16
      common/src/main/java/cn/reghao/devops/common/docker/po/GraphDriver.java
  15. 0 17
      common/src/main/java/cn/reghao/devops/common/docker/po/Health.java
  16. 0 19
      common/src/main/java/cn/reghao/devops/common/docker/po/ImageInfo.java
  17. 0 16
      common/src/main/java/cn/reghao/devops/common/docker/po/Log.java
  18. 0 24
      common/src/main/java/cn/reghao/devops/common/docker/po/State.java
  19. 0 21
      common/src/main/java/cn/reghao/devops/common/docker/po/result/Bridge.java
  20. 0 33
      common/src/main/java/cn/reghao/devops/common/docker/po/result/Container.java
  21. 0 47
      common/src/main/java/cn/reghao/devops/common/docker/po/result/ContainerInfo.java
  22. 0 19
      common/src/main/java/cn/reghao/devops/common/docker/po/result/Mount.java
  23. 0 13
      common/src/main/java/cn/reghao/devops/common/docker/po/result/NetworkSettings.java
  24. 0 13
      common/src/main/java/cn/reghao/devops/common/docker/po/result/Networks.java
  25. 0 15
      common/src/main/java/cn/reghao/devops/common/docker/po/result/Port.java

+ 4 - 5
common/src/main/java/cn/reghao/devops/common/docker/Docker.java

@@ -1,9 +1,8 @@
 package cn.reghao.devops.common.docker;
 
-import cn.reghao.devops.common.docker.po.Config;
-import cn.reghao.devops.common.docker.po.ContainerInfo;
-import cn.reghao.devops.common.docker.po.ImageInfo;
+import cn.reghao.devops.common.docker.model.Config;
 import com.github.dockerjava.api.command.InspectContainerResponse;
+import com.github.dockerjava.api.model.Image;
 import com.github.dockerjava.api.model.Version;
 
 import java.util.List;
@@ -27,9 +26,9 @@ public interface Docker {
     InspectContainerResponse stop(String containerName);
     InspectContainerResponse restart(String containerName);
     InspectContainerResponse inspectContainer(String containerName);
-    List<ImageInfo> images();
+    List<Image> images();
     void imageRm(String imageId);
     void rm(String containerId);
-    List<ContainerInfo> psAll();
+    List<InspectContainerResponse> psAll();
     InspectContainerResponse ps(String containerName);
 }

+ 8 - 15
common/src/main/java/cn/reghao/devops/common/docker/DockerImpl.java

@@ -1,10 +1,7 @@
 package cn.reghao.devops.common.docker;
 
-import cn.reghao.devops.common.docker.po.ContainerInfo;
-import cn.reghao.devops.common.docker.po.DockerAuth;
-import cn.reghao.devops.common.docker.po.ImageInfo;
+import cn.reghao.devops.common.docker.model.DockerAuth;
 import cn.reghao.jutil.jdk.exception.ExceptionUtil;
-import cn.reghao.jutil.jdk.converter.DateTimeConverter;
 import cn.reghao.jutil.jdk.text.TextFile;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.async.ResultCallback;
@@ -19,7 +16,6 @@ import lombok.extern.slf4j.Slf4j;
 
 import java.io.File;
 import java.time.Duration;
-import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -185,7 +181,7 @@ public class DockerImpl implements Docker {
     }
 
     @Override
-    public InspectContainerResponse createAndRun(String containerName, cn.reghao.devops.common.docker.po.Config containerConfig) throws Exception {
+    public InspectContainerResponse createAndRun(String containerName, cn.reghao.devops.common.docker.model.Config containerConfig) throws Exception {
         stopAndDelete(containerName);
 
         String image = containerConfig.getImage();
@@ -248,9 +244,10 @@ public class DockerImpl implements Docker {
     }
 
     @Override
-    public List<ImageInfo> images() {
+    public List<Image> images() {
         List<Image> images = dockerClient.listImagesCmd().exec();
-        return images.stream().map(image -> {
+        return images;
+        /*return images.stream().map(image -> {
             long created = image.getCreated();
             String[] repoTags = image.getRepoTags();
             if (repoTags.length == 0) {
@@ -263,7 +260,7 @@ public class DockerImpl implements Docker {
             String tag = repoTag[1];
             LocalDateTime created1 = DateTimeConverter.localDateTime(created*1000);
             return new ImageInfo(repo, tag, imageId, created1);
-        }).filter(Objects::nonNull).collect(Collectors.toList());
+        }).filter(Objects::nonNull).collect(Collectors.toList());*/
     }
 
     @Override
@@ -277,17 +274,13 @@ public class DockerImpl implements Docker {
     }
 
     @Override
-    public List<ContainerInfo> psAll() {
+    public List<InspectContainerResponse> psAll() {
         List<Container> list = dockerClient.listContainersCmd()
                 .withShowAll(true)
                 .exec();
-
         return list.stream().map(container -> {
             String containerId = container.getId();
-            String state = container.getState();
-            boolean running = "running".equalsIgnoreCase(state);
-            String imageId = container.getImageId();
-            return new ContainerInfo(containerId, running, imageId);
+            return dockerClient.inspectContainerCmd(containerId).exec();
         }).collect(Collectors.toList());
     }
 

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/docker/po/Config.java → common/src/main/java/cn/reghao/devops/common/docker/model/Config.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.common.docker.po;
+package cn.reghao.devops.common.docker.model;
 
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/docker/po/DockerAuth.java → common/src/main/java/cn/reghao/devops/common/docker/model/DockerAuth.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.common.docker.po;
+package cn.reghao.devops.common.docker.model;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/docker/po/ExposedPorts.java → common/src/main/java/cn/reghao/devops/common/docker/model/ExposedPorts.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.common.docker.po;
+package cn.reghao.devops.common.docker.model;
 
 import lombok.Data;
 

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/docker/po/Healthcheck.java → common/src/main/java/cn/reghao/devops/common/docker/model/Healthcheck.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.common.docker.po;
+package cn.reghao.devops.common.docker.model;
 
 import com.google.gson.annotations.SerializedName;
 import lombok.Data;

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/docker/po/HostConfig.java → common/src/main/java/cn/reghao/devops/common/docker/model/HostConfig.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.common.docker.po;
+package cn.reghao.devops.common.docker.model;
 
 import com.google.gson.annotations.SerializedName;
 import lombok.AllArgsConstructor;

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/docker/po/Labels.java → common/src/main/java/cn/reghao/devops/common/docker/model/Labels.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.common.docker.po;
+package cn.reghao.devops.common.docker.model;
 
 import lombok.Data;
 

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/docker/po/NetworkingConfig.java → common/src/main/java/cn/reghao/devops/common/docker/model/NetworkingConfig.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.common.docker.po;
+package cn.reghao.devops.common.docker.model;
 
 import lombok.Data;
 

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/docker/po/RestartPolicy.java → common/src/main/java/cn/reghao/devops/common/docker/model/RestartPolicy.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.common.docker.po;
+package cn.reghao.devops.common.docker.model;
 
 import com.google.gson.annotations.SerializedName;
 import lombok.AllArgsConstructor;

+ 1 - 1
common/src/main/java/cn/reghao/devops/common/docker/po/Volumes.java → common/src/main/java/cn/reghao/devops/common/docker/model/Volumes.java

@@ -1,4 +1,4 @@
-package cn.reghao.devops.common.docker.po;
+package cn.reghao.devops.common.docker.model;
 
 import lombok.Data;
 

+ 0 - 16
common/src/main/java/cn/reghao/devops/common/docker/po/ContainerInfo.java

@@ -1,16 +0,0 @@
-package cn.reghao.devops.common.docker.po;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2024-07-25 17:05:20
- */
-@AllArgsConstructor
-@Getter
-public class ContainerInfo {
-    private String containerId;
-    private boolean running;
-    private String imageId;
-}

+ 0 - 18
common/src/main/java/cn/reghao/devops/common/docker/po/Data.java

@@ -1,18 +0,0 @@
-package cn.reghao.devops.common.docker.po;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2020-05-19 20:50:24
- */
-@Getter
-@Setter
-public class Data {
-    @SerializedName("LowerDir") private String lowerDir;
-    @SerializedName("MergedDir") private String mergedDir;
-    @SerializedName("UpperDir") private String upperDir;
-    @SerializedName("WorkDir") private String workDir;
-}

+ 0 - 16
common/src/main/java/cn/reghao/devops/common/docker/po/GraphDriver.java

@@ -1,16 +0,0 @@
-package cn.reghao.devops.common.docker.po;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2020-05-19 20:51:13
- */
-@Getter
-@Setter
-public class GraphDriver {
-    @SerializedName("Data") private Data data;
-    @SerializedName("Name") private String name;
-}

+ 0 - 17
common/src/main/java/cn/reghao/devops/common/docker/po/Health.java

@@ -1,17 +0,0 @@
-package cn.reghao.devops.common.docker.po;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2021-02-25 10:16:50
- */
-@Data
-public class Health {
-    @SerializedName("Status") private String status;
-    @SerializedName("FailingStreak") private int failingStreak;
-    @SerializedName("Log") private List<Log> log;
-}

+ 0 - 19
common/src/main/java/cn/reghao/devops/common/docker/po/ImageInfo.java

@@ -1,19 +0,0 @@
-package cn.reghao.devops.common.docker.po;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-import java.time.LocalDateTime;
-
-/**
- * @author reghao
- * @date 2024-07-25 16:57:44
- */
-@AllArgsConstructor
-@Getter
-public class ImageInfo {
-    private String repository;
-    private String tag;
-    private String imageId;
-    private LocalDateTime created;
-}

+ 0 - 16
common/src/main/java/cn/reghao/devops/common/docker/po/Log.java

@@ -1,16 +0,0 @@
-package cn.reghao.devops.common.docker.po;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-/**
- * @author reghao
- * @date 2021-02-25 10:19:45
- */
-@Data
-public class Log {
-    @SerializedName("Start") private String start;
-    @SerializedName("End") private String end;
-    @SerializedName("ExitCode") private int exitCode;
-    @SerializedName("Output") private String output;
-}

+ 0 - 24
common/src/main/java/cn/reghao/devops/common/docker/po/State.java

@@ -1,24 +0,0 @@
-package cn.reghao.devops.common.docker.po;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-/**
- * @author reghao
- * @date 2020-05-19 21:04:06
- */
-@Data
-public class State {
-    @SerializedName("Error") private String error;
-    @SerializedName("ExitCode") private int exitCode;
-    @SerializedName("FinishedAt") private String finishedAt;
-    @SerializedName("Health") private Health health;
-    @SerializedName("OOMKilled") private boolean oomKilled;
-    @SerializedName("Dead") private boolean dead;
-    @SerializedName("Paused") private boolean paused;
-    @SerializedName("Pid") private int pid;
-    @SerializedName("Running") private boolean running;
-    @SerializedName("Restarting") private boolean restarting;
-    @SerializedName("StartedAt") private String startedAt;
-    @SerializedName("Status") private String status;
-}

+ 0 - 21
common/src/main/java/cn/reghao/devops/common/docker/po/result/Bridge.java

@@ -1,21 +0,0 @@
-package cn.reghao.devops.common.docker.po.result;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-/**
- * @author reghao
- * @date 2021-02-25 09:37:50
- */
-@Data
-public class Bridge {
-    @SerializedName("NetworkID") private String networkId;
-    @SerializedName("EndpointID") private String endpointId;
-    @SerializedName("Gateway") private String gateway;
-    @SerializedName("IPAddress") private String ipAddress;
-    @SerializedName("IPPrefixLen") private String ipPrefixLen;
-    @SerializedName("IPv6Gateway") private String ipv6Gateway;
-    @SerializedName("GlobalIPv6Address") private String globalIpv6Address;
-    @SerializedName("GlobalIPv6PrefixLen") private String globalIpv6PrefixLen;
-    @SerializedName("MacAddress") private String macAddress;
-}

+ 0 - 33
common/src/main/java/cn/reghao/devops/common/docker/po/result/Container.java

@@ -1,33 +0,0 @@
-package cn.reghao.devops.common.docker.po.result;
-
-import cn.reghao.devops.common.docker.po.Labels;
-import cn.reghao.devops.common.docker.po.HostConfig;
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * docker ps 返回值
- *
- * @author reghao
- * @date 2019-12-10 18:30:02
- */
-@Data
-public class Container {
-    @SerializedName("Id") private String id;
-    @SerializedName("Names") private List<String> names;
-    @SerializedName("Image") private String image;
-    @SerializedName("ImageID") private String imageId;
-    @SerializedName("Command") private String command;
-    @SerializedName("Created") private long created;
-    @SerializedName("State") private String state;
-    @SerializedName("Status") private String status;
-    @SerializedName("Ports") private List<Port> ports;
-    @SerializedName("Labels") private Labels labels;
-    @SerializedName("SizeRw") private int sizeRw;
-    @SerializedName("SizeRootFs") private int sizeRootFs;
-    @SerializedName("HostConfig") private HostConfig hostConfig;
-    @SerializedName("NetworkSettings") private NetworkSettings networkSettings;
-    @SerializedName("Mounts") private List<Mount> mounts;
-}

+ 0 - 47
common/src/main/java/cn/reghao/devops/common/docker/po/result/ContainerInfo.java

@@ -1,47 +0,0 @@
-package cn.reghao.devops.common.docker.po.result;
-
-import cn.reghao.devops.common.docker.po.GraphDriver;
-import cn.reghao.devops.common.docker.po.HostConfig;
-import cn.reghao.devops.common.docker.po.State;
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * docker inspect 返回值
- *
- * @author reghao
- * @date 2019-12-10 18:30:02
- */
-@Data
-public class ContainerInfo {
-    @SerializedName("AppArmorProfile") private String appArmorProfile;
-    @SerializedName("Args") private List<String> args;
-    @SerializedName("Config") private Config config;
-    @SerializedName("Created") private String created;
-    @SerializedName("Driver") private String driver;
-    @SerializedName("ExecIDs") private List<String> execIds;
-    @SerializedName("GraphDriver") private GraphDriver graphDriver;
-    @SerializedName("HostConfig") private HostConfig hostConfig;
-    @SerializedName("HostnamePath") private String hostnamePath;
-    @SerializedName("HostsPath") private String hostsPath;
-    @SerializedName("LogPath") private String logPath;
-    @SerializedName("Id") private String id;
-    @SerializedName("Image") private String image;
-    @SerializedName("MountLabel") private String mountLabel;
-    @SerializedName("Name") private String name;
-    @SerializedName("NetworkSettings") private NetworkSettings networkSettings;
-    @SerializedName("Path") private String path;
-    @SerializedName("ProcessLabel") private String processLabel;
-    @SerializedName("ResolvConfPath") private String resolvConfPath;
-    @SerializedName("RestartCount") private int restartCount;
-    @SerializedName("State") private State state;
-    @SerializedName("Mounts") private List<Mount> mounts;
-
-    @Data
-    static public class Config {
-        @SerializedName("Image") private String image;
-        @SerializedName("StopSignal") private String stopSignal;
-    }
-}

+ 0 - 19
common/src/main/java/cn/reghao/devops/common/docker/po/result/Mount.java

@@ -1,19 +0,0 @@
-package cn.reghao.devops.common.docker.po.result;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-/**
- * @author reghao
- * @date 2021-02-25 09:43:58
- */
-@Data
-public class Mount {
-    @SerializedName("Name") private String name;
-    @SerializedName("Source") private String source;
-    @SerializedName("Destination") private String destination;
-    @SerializedName("Driver") private String driver;
-    @SerializedName("Mode") private String mode;
-    @SerializedName("RW") private boolean rw;
-    @SerializedName("Propagation") private String propagation;
-}

+ 0 - 13
common/src/main/java/cn/reghao/devops/common/docker/po/result/NetworkSettings.java

@@ -1,13 +0,0 @@
-package cn.reghao.devops.common.docker.po.result;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-/**
- * @author reghao
- * @date 2021-02-25 09:41:50
- */
-@Data
-public class NetworkSettings {
-    @SerializedName("Networks") private Networks networks;
-}

+ 0 - 13
common/src/main/java/cn/reghao/devops/common/docker/po/result/Networks.java

@@ -1,13 +0,0 @@
-package cn.reghao.devops.common.docker.po.result;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-/**
- * @author reghao
- * @date 2021-02-25 09:41:10
- */
-@Data
-public class Networks {
-    @SerializedName("bridge") private Bridge bridge;
-}

+ 0 - 15
common/src/main/java/cn/reghao/devops/common/docker/po/result/Port.java

@@ -1,15 +0,0 @@
-package cn.reghao.devops.common.docker.po.result;
-
-import com.google.gson.annotations.SerializedName;
-import lombok.Data;
-
-/**
- * @author reghao
- * @date 2021-02-25 09:33:19
- */
-@Data
-public class Port {
-    @SerializedName("PrivatePort") private int privatePort;
-    @SerializedName("PublicPort") private int publicPort;
-    @SerializedName("Type") private String type;
-}