final ExecCreation execCreation = docker.execCreate( containerId, cmd, DockerClient.ExecCreateParam.attachStdout(), DockerClient.ExecCreateParam.attachStderr()); final String execId = execCreation.id();
public void executeCommand(String containerId, String[] command, boolean waitForExecution) { final ExecCreation execCreation; try { execCreation = dockerClient.execCreate(containerId, command, DockerClient.ExecCreateParam.attachStdout(), DockerClient.ExecCreateParam.attachStderr(), DockerClient.ExecCreateParam.attachStdin()); final LogStream output = dockerClient.execStart(execCreation.id()); logger.debug(String.format("%s %s", nodeId, Arrays.toString(command))); if (waitForExecution) { try { String commandOutput = output.readFully(); logger.debug(String.format("%s %s", nodeId, commandOutput)); } catch (Exception e) { logger.debug(nodeId + " Error while executing the output.readFully()", e); ga.trackException(e); } } } catch (DockerException | InterruptedException | NullPointerException e) { logger.debug(nodeId + " Error while executing the command", e); ga.trackException(e); } }
/** * Attach standard ouput. * * @param attachStdout Whether to attach standard output * @return ExecCreateParam */ public static ExecCreateParam attachStdout(final boolean attachStdout) { return create("AttachStdout", String.valueOf(attachStdout)); }
, "--cluster-index-ramsize=500" , DockerClient.ExecCreateParam.attachStdout(true) , DockerClient.ExecCreateParam.attachStderr(true) );
, "--cluster-ramsize=500" , DockerClient.ExecCreateParam.attachStdout(true) , DockerClient.ExecCreateParam.attachStderr(true) );
public String execCommandInContainer(String containerId, String... command) throws DockerException, InterruptedException { String[] shCommand = { "sh", "-c" }; String[] finalCommand = (String[]) ArrayUtils.addAll(shCommand, command); String commandStr = Arrays.toString(finalCommand); log.trace("Running command {} in container {}", commandStr, containerId); String execId = dockerClient.execCreate(containerId, finalCommand, DockerClient.ExecCreateParam.attachStdout(), DockerClient.ExecCreateParam.attachStderr()).id(); String output = null; try (LogStream stream = dockerClient.execStart(execId)) { output = stream.readFully(); } log.trace("Result of command {} in container {}: {}", commandStr, containerId, output); return output; }
private static ExecCreateParam create(final String name, final String value) { return new ExecCreateParam(name, value); }
/** * Attach standard streams to a tty. * * @param tty Whether to attach standard streams to a tty. * @return ExecCreateParam */ public static ExecCreateParam tty(final boolean tty) { return create("Tty", String.valueOf(tty)); }
/** * Attach stdin * * @param attachStdin Whether to attach the standard input which allows user interaction. * @return ExecCreateParam */ public static ExecCreateParam attachStdin(final boolean attachStdin) { return create("AttachStdin", String.valueOf(attachStdin)); }
/** * Give extended privileges to the command. * * @return ExecCreateParam */ public static ExecCreateParam privileged() { return privileged(true); }
/** * Execute in detached mode * * @param detach Whether to detach. * @return ExecCreateParam */ public static ExecCreateParam detach(final boolean detach) { return create("Detach", String.valueOf(detach)); }
/** * Attach standard ouput. * * @return ExecCreateParam */ public static ExecCreateParam attachStdout() { return attachStdout(true); }
/** * Attach standard error. * * @return ExecCreateParam */ public static ExecCreateParam attachStderr() { return attachStderr(true); }
/** * Attach standard input. * * @return ExecCreateParam */ public static ExecCreateParam attachStdin() { return attachStdin(true); }
/** * Run `docker exec` on a container */ public void execCommand(String containerName, String... command) throws DockerException, InterruptedException { log.info("Executing docker command: {}", String.join(" ", command)); ExecCreation execCreation = docker.execCreate( containerName, command, DockerClient.ExecCreateParam.attachStdout(), DockerClient.ExecCreateParam.attachStderr() ); docker.execStart(execCreation.id()); }
/** * Give extended privileges to the command. * * @param privileged Whether to give extended privileges to the command * @return ExecCreateParam */ public static ExecCreateParam privileged(final boolean privileged) { return create("Privileged", String.valueOf(privileged)); }
/** * Attach standard ouput. * * @param attachStdout Whether to attach standard output * @return ExecCreateParam */ public static ExecCreateParam attachStdout(final boolean attachStdout) { return create("AttachStdout", String.valueOf(attachStdout)); }
/** * User that will run the command. * * @param user user * @return ExecCreateParam */ public static ExecCreateParam user(final String user) { return create("User", user); } }
/** * Attach standard error. * * @param attachStderr Whether to attach standout error * @return ExecCreateParam */ public static ExecCreateParam attachStderr(final boolean attachStderr) { return create("AttachStderr", String.valueOf(attachStderr)); }