Desidero che vengano eseguiti automaticamente due file JAR separati una volta che un contenitore docker viene chiamato tramite il comando run, quindi quando si digita lo docker run mycontainer
vengono entrambi richiamati. Finora ho un file di dati simile al seguente:Come avviare automaticamente due JAR su "contenitore run docker"
# base image is java:8 (ubuntu)
FROM java:8
# add files to image
ADD first.jar .
ADD second.jar .
# start on run
CMD ["/usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-jar", "first.jar"]
CMD ["/usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-jar", "second.jar"]
Questo, tuttavia, avvia solo second.jar.
Ora, entrambi i jar sono server in un ciclo, quindi suppongo che una volta avviato, blocchi solo il terminale. Se eseguo il contenitore utilizzando run -it mycontainer bash
e li chiamo manualmente, il primo eseguirà le sue uscite e non posso avviare l'altro.
C'è un modo per aprire diversi terminali e passare da uno all'altro per far funzionare ciascun JAR nel proprio contesto? Preferibilmente già nel file Docker.
So quasi nulla di ubuntu ma ho trovato il comando xterm
che apre un nuovo terminale, tuttavia questo non funzionerà dopo aver chiamato un JAR. Quello che sto cercando sono le istruzioni per il file docker che ad esempio aprono un nuovo terminale, eseguono first.jar, alt-tab nel vecchio terminale ed eseguono second.jar lì, o almeno ottengono lo stesso risultato.
Grazie!
Grazie, la soluzione script è esattamente quello che stavo cercando. Funziona senza problemi finora! Sto dando un'occhiata anche alla phusione, nel caso qualcosa si rompa. – buggy
buono a sapersi! Ho aggiunto un esempio su come impostare phusion per avviare entrambi i jar come "servizi" separati. – craeckie