首页 > 解决方案 > 在 Java 中运行 docker exec

问题描述

我从终端运行命令并且它工作,命令是:

docker exec mysql-container /bin/sh -c "./build/update-time.sh 1559652300000"

我希望能够在 JAVA 中做到这一点,所以我尝试了以下但失败了。任何想法如何使它工作?

public class DockerUtils {
    public static DockerComposeRule docker;
    public static DockerComposeExecOption option = DockerComposeExecOption.noOptions();

    public static void updateTime() {
                                                                //also tried "bin/sh", "-c"
        DockerComposeExecArgument args = DockerComposeExecArgument.arguments("bash", "-c", "./build/update-time.sh 1559652300000");

        //this fails
        docker.exec(option, "mysql-container", args);
    }
}

投掷java.lang.NullPointerException

$> docker ps
(I had to cut the output below, but there is a container with the name!)
CONTAINER ID   IMAGE   COMMAND    CREATED    STATUS   PORTS   NAMES
ce1e1d33dcef   xx       xx          xx        xx      xx      mysql-container

标签: javabashdockerexec

解决方案


推荐阅读