小编Ata*_*hev的帖子

由于 docker pull,Shell 脚本在通过 ProcessBuilder 运行时过早退出

我有以下问题,这似乎是由我的 shell 脚本中的“docker pull”引起的,因为 pull 同时工作

#!/bin/bash   
#VARIABLES
    NAME="my-app"
    IMAGE="my-image:latest"
#DOCKER
    docker stop $NAME
    docker rm $NAME
    docker pull -q $IMAGE
    docker run --name $NAME -d -p 1234:8080 --log-opt fluentd-address=localhost:2233 $IMAGE
Run Code Online (Sandbox Code Playgroud)

通过终端运行脚本工作正常,一切都按预期工作。但是当我使用 Java 的 ProcessBuilder 运行它时,脚本退出的速度要快得多,而且它似乎跳过了“docker pull”步骤。由于我不是 Java 开发人员,而且我对语言不是很熟悉,我感觉这与 docker pull 命令的多并发性质以及 Java Process Builder 如何执行 shell 脚本的方式有关

运行shell脚本的Java类是这个

try {

    Collection<Task> tasks = taskService.getProjectTasksByProjectKey(projectId);

    Task findTask = findTaskByTaskId(tasks, taskId);
    if (findTask.getTaskId() != null) {
        ProcessBuilder pb = new ProcessBuilder(findTask.getCmdPath());
        Process process = pb.start();

        String output;

        try (InputStream in = …
Run Code Online (Sandbox Code Playgroud)

java bash shell docker

6
推荐指数
1
解决办法
151
查看次数

标签 统计

bash ×1

docker ×1

java ×1

shell ×1