Der Versuch, einen Docker-Container im Demon-Modus mit dem Shell-Skript von java service auf Tomcat auf einer ubunty-basierten VM zu starten.Starten von Docker Dämon aus Java-Dienst
Ich habe einen Java-basierten REST-Service, der auf Tomcat bereitgestellt wurde, auf der gleichen VM habe ich Docker installiert. Ich habe eine Shell-Datei erstellt, um meinen Andock-Container zu starten. Wenn diese Shell-Datei von Terminal ausgeführt wird, funktioniert es einwandfrei. Obwohl, wenn ich diese Shell-Datei aus Java irgendwie ausführen gibt es keinen Fehler und führt nicht den Docker-Befehl in der Shell-Datei.
Beachten Sie, ob ich einen Punkt verpasst habe oder etwas falsch gemacht habe. Wäre toll wenn mir jemand helfen könnte.
Shell Datei-Code-Schnipsel.
#!/bin/bash
echo First Parameter is $1
echo Second Parameter is $2
echo Third Parameter is $3
sudo docker run -d -e PARAM1=$1 -e PARAM2=$2 -e PARAM3=$3 --name=$1 <docker_iamge_name>
Java CodeSnippet für den Aufruf der Datei (Skript (zum Testen haben derzeit Ausgeführt Genehmigung für alle Benutzer chmod 777 über die angegebenen) beachten Sie, dies ist keine eigenständige Java-Klasse verwende ich dieser Code-Schnipsel innen auf Java-basierten REST-Dienst, die auf Tomcat bereitgestellt wird)
String command[];
command = new String[] {"/home/launcher/launcher_agent.sh","Param1","Param2", "Param3"};
Process process = Runtime.getRuntime().exec(command);
auf die oben Javascript in dem sdtout Logs Tomcat Ausführen des folgenden
erhaltenFirst Parameter is Param1
Second Parameter is Param2
Third Parameter is Param3
Post, wenn ich den Docker ps -a überprüfen, sehe ich nicht, dass der Container gestartet wird.
Danke für die Antwort.
Danke für die schnelle Antwort, die viel Wert zu erhalten die Fehlerstrom hilft uns, dass sudo gefunden ist nicht tty presen und kein askpass. Also haben wir das sudo aus dem Skript entfernt und tomcat7 user zur docker-Gruppe hinzugefügt. Auf diese Weise funktioniert jetzt die Lösung. –