From 3e311df217efd2eab54d0e53b553825685d0f0f3 Mon Sep 17 00:00:00 2001 From: Boni Garcia Date: Thu, 27 Feb 2025 13:35:29 +0100 Subject: [PATCH] Several smell-fixes in Docker service --- .../bonigarcia/wdm/docker/DockerService.java | 46 +++++++++---------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/src/main/java/io/github/bonigarcia/wdm/docker/DockerService.java b/src/main/java/io/github/bonigarcia/wdm/docker/DockerService.java index 9eba8f418..9ca92e73c 100644 --- a/src/main/java/io/github/bonigarcia/wdm/docker/DockerService.java +++ b/src/main/java/io/github/bonigarcia/wdm/docker/DockerService.java @@ -54,9 +54,9 @@ import com.github.dockerjava.api.command.AsyncDockerCmd; import com.github.dockerjava.api.command.CreateContainerCmd; import com.github.dockerjava.api.command.CreateContainerResponse; +import com.github.dockerjava.api.command.CreateNetworkCmd; import com.github.dockerjava.api.command.CreateNetworkResponse; import com.github.dockerjava.api.command.ExecStartCmd; -import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.api.command.LogContainerCmd; import com.github.dockerjava.api.exception.DockerException; import com.github.dockerjava.api.model.Bind; @@ -280,12 +280,6 @@ public synchronized String startContainer(DockerContainer dockerContainer) return containerId; } - public String getContainerName(String containerId) { - InspectContainerResponse containerInfo = dockerClient - .inspectContainerCmd(containerId).exec(); - return containerInfo.getName().replaceAll("/", ""); - } - public void createDockerNetworkIfNotExists(String networkName) { List networks = dockerClient.listNetworksCmd().exec(); boolean networkExists = networks.stream() @@ -293,11 +287,14 @@ public void createDockerNetworkIfNotExists(String networkName) { if (networkExists) { log.trace("Docker network {} already exits", networkName); } else { - CreateNetworkResponse networkResponse = dockerClient - .createNetworkCmd().withName(networkName) - .withDriver(NETWORK_DRIVER).exec(); - log.trace("Docker network {} created with id {}", networkName, - networkResponse.getId()); + try (CreateNetworkCmd networkCmd = dockerClient + .createNetworkCmd()) { + CreateNetworkResponse networkResponse = networkCmd + .withName(networkName).withDriver(NETWORK_DRIVER) + .exec(); + log.trace("Docker network {} created with id {}", networkName, + networkResponse.getId()); + } } } @@ -504,17 +501,19 @@ public String getBrowserVersionFromContainer( + " is not available as Docker container"); } cmd.add("--version"); - CreateContainerResponse container = dockerClient - .createContainerCmd(dockerImage).withCmd(cmd) - .withHostConfig( - HostConfig.newHostConfig().withAutoRemove(true)) - .exec(); - dockerClient.startContainerCmd(container.getId()).exec(); - LogContainerCmd logContainerCmd = dockerClient - .logContainerCmd(container.getId()).withStdOut(true) - .withFollowStream(true); - browserVersionFromContainer = parseVersion( - getOutputFromCmd(logContainerCmd)); + try (CreateContainerCmd containerCmd = dockerClient + .createContainerCmd(dockerImage)) { + CreateContainerResponse container = containerCmd.withCmd(cmd) + .withHostConfig( + HostConfig.newHostConfig().withAutoRemove(true)) + .exec(); + dockerClient.startContainerCmd(container.getId()).exec(); + LogContainerCmd logContainerCmd = dockerClient + .logContainerCmd(container.getId()).withStdOut(true) + .withFollowStream(true); + browserVersionFromContainer = parseVersion( + getOutputFromCmd(logContainerCmd)); + } } catch (Exception e) { log.warn("Exception discovering browser version from container: {}", @@ -759,7 +758,6 @@ public DockerContainer startRecorderContainer(String dockerImage, // binds List binds = new ArrayList<>(); - // binds.add("C:/Users/boni/Downloads/video:/videos"); binds.add(recordingPath.toAbsolutePath().getParent().toString() + ":/videos"); String dockerVolumes = config.getDockerVolumes();