@Override public CreateContainerCmd createContainerCmd(@NotNull String image) { return wrappedCommand(CreateContainerCmd.class, wrappedClient.createContainerCmd(image), (cmd, res) -> doLog("CREATE", image, res.getId(), cmd), (cmd, e) -> doLog("CREATE", image, null, cmd, e)); }
private <T> T runInsideDocker(DockerClient client, Consumer<CreateContainerCmd> createContainerCmdConsumer, BiFunction<DockerClient, String, T> block) { checkAndPullImage(client, TINY_IMAGE); CreateContainerCmd createContainerCmd = client.createContainerCmd(TINY_IMAGE) .withLabels(DEFAULT_LABELS); createContainerCmdConsumer.accept(createContainerCmd); String id = createContainerCmd.exec().getId(); try { client.startContainerCmd(id).exec(); return block.apply(client, id); } finally { try { client.removeContainerCmd(id).withRemoveVolumes(true).withForce(true).exec(); } catch (NotFoundException | InternalServerErrorException ignored) { log.debug("", ignored); } } }
applyConfiguration(createCommand); containerId = createCommand.exec().getId();
.exec(); docker.startContainerCmd(container.getId()).exec(); .logContainerCmd(container.getId()) .withStdErr(true) .withStdOut(true) .waitContainerCmd(container.getId()) .exec(new WaitContainerResultCallback()) .awaitStatusCode(); docker.removeContainerCmd(container.getId()).exec(); if (exitCode != 0) { throw new PluginException("Build Project Error ExitCode: " + exitCode); docker.removeContainerCmd(container.getId()); log.error("Docker build error ", e); throw new PluginException("Docker build error " + e.getMessage());
private String startContainer(CreateContainerCmd cmd, DockerClient client) { CreateContainerResponse createResp = cmd.exec(); StartContainerCmd startCmd = client.startContainerCmd(createResp.getId()); try { startCmd.exec(); } catch (Throwable t) { throw new ContainerException(createResp.getId(), t); } return startCmd.getContainerId(); }
private void startContainer(Map<String, String> env, Map<Integer, Integer> ports, Map<String, String> cmd, Consumer<String> log) { final CreateContainerResponse container = client.createContainerCmd(image) .withCmd(cmd.entrySet().stream().map(e -> e.getKey() + "=" + e.getValue()).collect(toList())) .withLabels(map(label, "true")) .withEnv(env.entrySet().stream().map(e -> e.getKey() + "=" + e.getValue()).collect(toList())) .withPortBindings(ports.entrySet().stream().map(e -> new PortBinding(Ports.Binding.bindPort(e.getKey()), ExposedPort.tcp(e.getValue()))).collect(toList())) .exec(); client.startContainerCmd(container.getId()).exec(); client.logContainerCmd(container.getId()).withFollowStream(true).withStdOut(true).withStdErr(true).exec( new LogContainerResultCallback() { public void onNext(Frame frame) { final String msg = new String(frame.getPayload()); log.accept(msg.endsWith("\n") ? msg.substring(0, msg.length() - 1) : msg); } }); } }
public String createContainer(String image, String... command){ CreateContainerResponse container = dockerClient .createContainerCmd(image) .withCmd(command) .exec(); return container.getId(); }
@Override public CreateContainerCmd createContainerCmd(@NotNull String image) { return wrappedCommand(CreateContainerCmd.class, wrappedClient.createContainerCmd(image), (cmd, res) -> doLog("CREATE", image, res.getId(), cmd), (cmd, e) -> doLog("CREATE", image, null, cmd, e)); }
private String createContainer(String wantedImage, Ports bindings, List<String> environmentStrings) { String imageWithVersion = wantedImage; if (!imageWithVersion.contains(":")) { imageWithVersion += ":latest"; } this.ensureImageExists(imageWithVersion); return dockerClient.createContainerCmd(imageWithVersion) .withEnv(environmentStrings) .withPortBindings(bindings) .exec().getId(); }
public WaitContainerResultCallback waitForCompletion() { final WaitContainerResultCallback waitContainerResultCallback = new WaitContainerResultCallback(); client.waitContainerCmd(getContainerInfo().getId()).exec(waitContainerResultCallback); return waitContainerResultCallback; }
public String run(String image, int... ports) { String containerId = docker.createContainerCmd(image).exec().getId(); List<PortBinding> portBindings = new ArrayList<>(); if (ports != null) { for (int port : ports) { portBindings.add(new PortBinding(new Ports.Binding(port), new ExposedPort(port))); } } docker.startContainerCmd(containerId).withPortBindings(portBindings.toArray(new PortBinding[portBindings.size()])).exec(); startedContainers.add(containerId); registerShutdown(containerId); return containerId; }
public String readLogsFully(Integer waitTimeSeconds) throws InterruptedException { final LogContainerCmd logContainerCmd = client.logContainerCmd(containerInfo.getId()) .withStdOut(true) .withFollowStream(true) .withStdErr(true); final StringBuilder stringBuilder = new StringBuilder(); final LogContainerResultCallback resultCallback = new LogContainerResultCallback() { @Override public void onNext(final Frame item) { stringBuilder.append(item.toString() + System.lineSeparator()); } }; logContainerCmd.exec(resultCallback); resultCallback.awaitCompletion(waitTimeSeconds, TimeUnit.SECONDS); return stringBuilder.toString(); }
public String createContainerWithPorts(String image, int[] ports, String... command){ ExposedPort[] exposedPorts=new ExposedPort[ports.length]; for(int i=0;i < ports.length;i++){ exposedPorts[i]=ExposedPort.tcp(ports[i]); } CreateContainerResponse container = dockerClient.createContainerCmd(image) .withCmd(command) .withExposedPorts(exposedPorts) .exec(); return container.getId(); }
/** * for publishers/builders. Simply runs container in docker cloud */ public static String runContainer(DockerTemplateBase dockerTemplateBase, DockerClient dockerClient) { CreateContainerCmd containerConfig = dockerClient.createContainerCmd(dockerTemplateBase.getImage()); dockerTemplateBase.fillContainerConfig(containerConfig); // create CreateContainerResponse response = containerConfig.exec(); String containerId = response.getId(); // start StartContainerCmd startCommand = dockerClient.startContainerCmd(containerId); startCommand.exec(); return containerId; }
private String dockerRun(String imageId) { String containerId = dockerClient.createContainerCmd(imageId).exec().getId(); dockerClient.startContainerCmd(containerId).exec(); return containerId; }
@Test public void shouldGiveLogsInStream() { containerId = dockerClient.createContainerCmd(WANTED_IMAGE).withEnv(singletonList("WAITING_TIME=1ms")) .exec() .getId(); dockerClient.startContainerCmd(containerId).exec(); Stream<String> logs = defaultDockerClient.logs(containerId); Optional<String> firstLine = logs.findFirst(); assertThat(firstLine).isPresent() .hasValueSatisfying("started"::equals); } }
@BeforeEach public void startAContainer() { ensureImageExists(WANTED_IMAGE); containerId = dockerClient.createContainerCmd(WANTED_IMAGE) .exec() .getId(); dockerClient.startContainerCmd(containerId).exec(); }
@BeforeEach public void startAContainer() { ensureImageExists(WANTED_IMAGE); containerId = dockerClient.createContainerCmd(WANTED_IMAGE).exec().getId(); dockerClient.startContainerCmd(containerId).exec(); }
@BeforeEach public void startAContainer() { ensureImageExists(WANTED_IMAGE); existingVolumes = volumes(); containerId = dockerClient.createContainerCmd(WANTED_IMAGE).exec().getId(); dockerClient.startContainerCmd(containerId).exec(); }
protected void createContainer(DockerClient dockerClient) throws InterruptedException { pullImage(dockerClient); CreateContainerCmd createContainerCmd = dockerClient.createContainerCmd(properties.getDockerImage()) // NOSONAR .withLabels(getAllLabels()) .withEnv(getEnvs()) .withHostConfig(buildHostConfig()); adjustCreateCommand(createContainerCmd); String containerId = createContainerCmd.exec().getId(); dockerClient.startContainerCmd(containerId).exec(); containerInfo = dockerClient.inspectContainerCmd(containerId).exec(); }