Как запустить docker изображение из java Программы? - PullRequest
1 голос
/ 14 января 2020

Я пытаюсь запустить образ Ubuntu из программы java, используя скрипт; вот как:

мой java код:

public static void main(String[] args) {
    executeCommand("/home/abrahem/IdeaProjects/untitled3/src/createContainer.sh");
}


public static void executeCommand(String filePath) {
    File file = new File(filePath);
    if (!file.isFile()) {
        throw new IllegalArgumentException("The file " + filePath + " does not exist");
    }
    try {
        if (isLinux()) {
            Process p = Runtime.getRuntime().exec("sh " + filePath);
            p.waitFor(); // i tried to remove this but still not work for my me 
        } else if (isWindows()) {
            Runtime.getRuntime().exec("cmd /c start " + filePath);
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

вот мой createContainer. sh файл сценария:

#!bin/sh
sudo docker run ubuntu 

когда я go до bin и набрал:

docker ps

или

docker ps -a

Он должен показывать работающий контейнер Ubuntu, но это не так.

Примечание: в расположении оболочки нет ничего плохого; Я пытаюсь создать файл в файле оболочки, и он работает.

1 Ответ

1 голос
/ 14 января 2020

Вы не фиксируете никаких сообщений об ошибках или нормальных выходных данных из вашего процесса. Может быть, это просто работает?

Используйте getErrorStream () и getOutputStream () методы Process для захвата выходных данных процесса, примерно как описано здесь . Вы можете просто увидеть ожидаемый результат. Если нет, это должно быть сообщение об ошибке в потоке ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...