|
|
@@ -1,12 +1,10 @@
|
|
|
package seecoder.devcloud.api.docker.impl;
|
|
|
|
|
|
|
|
|
-import com.spotify.docker.client.DefaultDockerClient;
|
|
|
-import com.spotify.docker.client.DockerClient;
|
|
|
-import com.spotify.docker.client.DockerConfigReader;
|
|
|
-import com.spotify.docker.client.ProgressHandler;
|
|
|
+import com.spotify.docker.client.*;
|
|
|
import com.spotify.docker.client.auth.ConfigFileRegistryAuthSupplier;
|
|
|
import com.spotify.docker.client.auth.RegistryAuthSupplier;
|
|
|
+import com.spotify.docker.client.exceptions.DockerCertificateException;
|
|
|
import com.spotify.docker.client.exceptions.DockerException;
|
|
|
import com.spotify.docker.client.messages.Image;
|
|
|
import com.spotify.docker.client.messages.ProgressMessage;
|
|
|
@@ -14,11 +12,14 @@ import lombok.extern.apachecommons.CommonsLog;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.boot.system.ApplicationHome;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
+import org.springframework.util.ResourceUtils;
|
|
|
import seecoder.devcloud.api.ApplicationProperties;
|
|
|
import seecoder.devcloud.api.docker.DockerApi;
|
|
|
|
|
|
import java.io.File;
|
|
|
+import java.io.FileNotFoundException;
|
|
|
import java.io.IOException;
|
|
|
+import java.net.URI;
|
|
|
import java.nio.file.Path;
|
|
|
import java.nio.file.Paths;
|
|
|
import java.util.ArrayList;
|
|
|
@@ -34,13 +35,24 @@ public class DockerApiImpl implements DockerApi {
|
|
|
private final String registry;
|
|
|
|
|
|
@Autowired
|
|
|
- public DockerApiImpl(ApplicationProperties properties){
|
|
|
+ public DockerApiImpl(ApplicationProperties properties) throws DockerCertificateException {
|
|
|
registry = properties.getDocker().getRegistry();
|
|
|
- client = new DefaultDockerClient(properties.getDocker().getHost());
|
|
|
+ Path dockerConfigPath = null;
|
|
|
+ try {
|
|
|
+ dockerConfigPath = ResourceUtils.getFile("classpath:docker").toPath();
|
|
|
+ if (properties.getDocker().getTls()){
|
|
|
+ client = new DefaultDockerClient(URI.create(properties.getDocker().getHost()), new DockerCertificates(dockerConfigPath));
|
|
|
+ } else {
|
|
|
+ client = new DefaultDockerClient(properties.getDocker().getHost());
|
|
|
+ }
|
|
|
+ } catch (FileNotFoundException e) {
|
|
|
+ throw new DockerCertificateException("设置读取失败");
|
|
|
+ }
|
|
|
+
|
|
|
defaultHandler = new NoActionProgressHandler();
|
|
|
ApplicationHome applicationHome = new ApplicationHome(getClass());
|
|
|
- Path path = Paths.get(applicationHome.getDir().getAbsolutePath(), "docker-config.json");
|
|
|
- registryAuthSupplier = new ConfigFileRegistryAuthSupplier(new DockerConfigReader(), path);
|
|
|
+ // Path path = Paths.get(applicationHome.getDir().getAbsolutePath(), "docker-config.json");
|
|
|
+ registryAuthSupplier = new ConfigFileRegistryAuthSupplier(new DockerConfigReader(), Paths.get(dockerConfigPath.toString(),"docker-config.json"));
|
|
|
}
|
|
|
|
|
|
@Override
|