summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/libertacasa/pubsh/web/Docker.java
blob: 637f22d2eddca72ad036a3bf6873d89bdcf432ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package net.libertacasa.pubsh.web;

import java.time.Duration;
import java.util.List;
import java.util.stream.Collectors;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.model.Image;
import com.github.dockerjava.core.DefaultDockerClientConfig;
import com.github.dockerjava.core.DockerClientConfig;
import com.github.dockerjava.core.DockerClientImpl;
import com.github.dockerjava.httpclient5.ApacheDockerHttpClient;
import com.github.dockerjava.transport.DockerHttpClient;

public class Docker {
	
	static DockerClientConfig DockerConfig = DefaultDockerClientConfig.createDefaultConfigBuilder()
		    .withDockerHost("tcp://sweetsuse:2375")
		    .withDockerTlsVerify(false)
		    .build();	
	
	static DockerHttpClient httpClient = new ApacheDockerHttpClient.Builder()
		    .dockerHost(DockerConfig.getDockerHost())
		    .sslConfig(DockerConfig.getSSLConfig())
		    .maxConnections(100)
		    .connectionTimeout(Duration.ofSeconds(30))
		    .responseTimeout(Duration.ofSeconds(45))
		    .build();
	
	static DockerClient dockerClient = DockerClientImpl.getInstance(DockerConfig, httpClient);
	
	public static List<String> getImageChecksums() {
		List<Image> imageQuery;
		List<String> imageList;
		imageQuery = dockerClient.listImagesCmd().exec();
		imageList = imageQuery.stream().map(Image::getId).collect(Collectors.toList());
		return imageList;
	}
	
	public static List<Image> getImages() {
		List<Image> imageQuery;
		imageQuery = dockerClient.listImagesCmd().exec();
		return imageQuery;
	}	
	
	public static List<com.github.dockerjava.api.model.Container> getContainers() {
		List<com.github.dockerjava.api.model.Container> containerQuery;
		containerQuery = dockerClient.listContainersCmd().withShowAll(true).exec();
		return containerQuery;
	}
	
	public static void deleteContainer(String id) {
		dockerClient.removeContainerCmd(id).exec();
	}
	
}