diff options
Diffstat (limited to 'docker-api')
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java | 4 | ||||
-rw-r--r-- | docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java | 12 |
2 files changed, 15 insertions, 1 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java index e006d5aca4c..04d4628d576 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/Docker.java @@ -50,7 +50,9 @@ public interface Docker { } Optional<ContainerStats> getContainerStats(ContainerName containerName); - + + void createContainer(CreateContainerCommand createContainerCommand); + void startContainer(ContainerName containerName); void stopContainer(ContainerName containerName); diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java index a72865e023a..e81c6325922 100644 --- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java +++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerImpl.java @@ -340,6 +340,18 @@ public class DockerImpl implements Docker { } @Override + public void createContainer(CreateContainerCommand createContainerCommand) { + try { + dockerClient.execCreateCmd(createContainerCommand.toString()); + } catch (NotModifiedException ignored) { + // If is already created, ignore + } catch (RuntimeException e) { + numberOfDockerDaemonFails.add(); + throw new DockerException("Failed to create container '" + createContainerCommand.toString() + "'", e); + } + } + + @Override public void startContainer(ContainerName containerName) { try { dockerClient.startContainerCmd(containerName.asString()).exec(); |