From e6c097429bac013b6fc7ac8329bb3ce510cc1a40 Mon Sep 17 00:00:00 2001 From: Bhargav Kodali Date: Mon, 30 Sep 2024 09:13:31 -0700 Subject: [PATCH 1/2] docker-fix --- .../main/java/org/openmrs/maven/plugins/CreateMySql.java | 6 +++++- .../org/openmrs/maven/plugins/utility/DockerHelper.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java b/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java index d56e2fd7..b80286b5 100644 --- a/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java +++ b/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java @@ -11,12 +11,14 @@ import com.github.dockerjava.api.model.PullResponseItem; import com.github.dockerjava.api.model.Volume; import org.apache.commons.lang.StringUtils; +import com.github.dockerjava.api.command.ListImagesCmd; import org.apache.maven.plugin.MojoExecutionException; import java.io.Closeable; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Arrays; import java.util.concurrent.CountDownLatch; /** @@ -62,7 +64,9 @@ public void executeTask() throws MojoExecutionException { } private boolean noMySqlImage(DockerClient docker) { - List mysql = docker.listImagesCmd().withImageNameFilter(MYSQL_8_4_1).exec(); + ListImagesCmd listImagesCmd = docker.listImagesCmd(); + listImagesCmd.getFilters().put("reference", Arrays.asList(MYSQL_8_4_1)); + List mysql = listImagesCmd.exec(); return mysql.size() == 0; } diff --git a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java index e51b5cb3..8edece3d 100644 --- a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java +++ b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java @@ -32,7 +32,7 @@ public class DockerHelper { public static final String DOCKER_MYSQL_PASSWORD = "Admin123"; private static final String DOCKER_HOST_KEY = "dockerHost"; public static final String DEFAULT_DOCKER_HOST_UNIX_SOCKET = "unix:///var/run/docker.sock"; - public static final String DEFAULT_HOST_DOCKER_FOR_WINDOWS = "http://127.0.0.1:2375/"; + public static final String DEFAULT_HOST_DOCKER_FOR_WINDOWS = "tcp://127.0.0.1:2375/"; private static final String DOCKER_HOST_MSG_WINDOWS = "To use dockerized MySQL, You have to pass Docker Host URL to SDK. " + "You should run SDK from docker-machine command line, so SDK can connect to your Docker. Your individual docker host URL can be obtained by calling command" + From 8d50aa7d64b18c86e40996b4423b0de82bd58fe5 Mon Sep 17 00:00:00 2001 From: Bhargav Kodali Date: Tue, 1 Oct 2024 14:42:34 -0700 Subject: [PATCH 2/2] add windows pipe for connecting to docker on windows --- .../main/java/org/openmrs/maven/plugins/CreateMySql.java | 6 +++--- .../org/openmrs/maven/plugins/utility/DefaultWizard.java | 2 +- .../org/openmrs/maven/plugins/utility/DockerHelper.java | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java b/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java index b80286b5..bceabe54 100644 --- a/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java +++ b/docker-maven-plugin/src/main/java/org/openmrs/maven/plugins/CreateMySql.java @@ -18,7 +18,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Arrays; +import java.util.Collections; import java.util.concurrent.CountDownLatch; /** @@ -65,9 +65,9 @@ public void executeTask() throws MojoExecutionException { private boolean noMySqlImage(DockerClient docker) { ListImagesCmd listImagesCmd = docker.listImagesCmd(); - listImagesCmd.getFilters().put("reference", Arrays.asList(MYSQL_8_4_1)); + listImagesCmd.getFilters().put("reference", Collections.singletonList(MYSQL_8_4_1)); List mysql = listImagesCmd.exec(); - return mysql.size() == 0; + return mysql.isEmpty(); } private void createMysqlContainer(DockerClient docker) { diff --git a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java index 4126f7b8..d7128cf1 100644 --- a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java +++ b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DefaultWizard.java @@ -971,7 +971,7 @@ private String determineDefaultDockerHost() { private String determineWindowsDockerHost() { if (determineDockerForWindowsHost()) { - return DockerHelper.DEFAULT_HOST_DOCKER_FOR_WINDOWS; + return DockerHelper.DEFAULT_WINDOWS_PIPE_FOR_DOCKER; } else { return determineDockerToolboxHost(); } diff --git a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java index 8edece3d..adc77a51 100644 --- a/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java +++ b/sdk-commons/src/main/java/org/openmrs/maven/plugins/utility/DockerHelper.java @@ -32,7 +32,8 @@ public class DockerHelper { public static final String DOCKER_MYSQL_PASSWORD = "Admin123"; private static final String DOCKER_HOST_KEY = "dockerHost"; public static final String DEFAULT_DOCKER_HOST_UNIX_SOCKET = "unix:///var/run/docker.sock"; - public static final String DEFAULT_HOST_DOCKER_FOR_WINDOWS = "tcp://127.0.0.1:2375/"; + public static final String DEFAULT_HOST_DOCKER_FOR_WINDOWS = "http://127.0.0.1:2375/"; + public static final String DEFAULT_WINDOWS_PIPE_FOR_DOCKER = "npipe:////./pipe/docker_engine"; private static final String DOCKER_HOST_MSG_WINDOWS = "To use dockerized MySQL, You have to pass Docker Host URL to SDK. " + "You should run SDK from docker-machine command line, so SDK can connect to your Docker. Your individual docker host URL can be obtained by calling command" +