Skip to content

Commit

Permalink
Several smell-fixes in Docker service
Browse files Browse the repository at this point in the history
  • Loading branch information
bonigarcia committed Feb 27, 2025
1 parent deae063 commit 3e311df
Showing 1 changed file with 22 additions and 24 deletions.
46 changes: 22 additions & 24 deletions src/main/java/io/github/bonigarcia/wdm/docker/DockerService.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -280,24 +280,21 @@ 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<Network> networks = dockerClient.listNetworksCmd().exec();
boolean networkExists = networks.stream()
.anyMatch(network -> network.getName().equals(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());
}
}
}

Expand Down Expand Up @@ -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: {}",
Expand Down Expand Up @@ -759,7 +758,6 @@ public DockerContainer startRecorderContainer(String dockerImage,

// binds
List<String> binds = new ArrayList<>();
// binds.add("C:/Users/boni/Downloads/video:/videos");
binds.add(recordingPath.toAbsolutePath().getParent().toString()
+ ":/videos");
String dockerVolumes = config.getDockerVolumes();
Expand Down

0 comments on commit 3e311df

Please sign in to comment.