Chcę, aby dwa oddzielne pliki JAR były uruchamiane automatycznie po wywołaniu kontenera w doku za pomocą polecenia uruchamiania, więc gdy wpiszesz docker run mycontainer
, oba zostaną wywołane. Do tej pory mam plik docker, który wygląda tak:Sposób automatycznego uruchamiania dwóch plików JAR na "kontenerze dokowania"
# 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"]
To jednak zaczyna się tylko od second.jar.
Teraz oba słoiki są serwerami w pętli, więc domyślam się, że po uruchomieniu blokuje tylko terminal. Jeśli uruchomię kontener używając run -it mycontainer bash
i wykonam je ręcznie, pierwszy wykona swoje wyjścia i nie będę mógł uruchomić drugiego.
Czy istnieje sposób otwierania różnych terminali i przełączania się między nimi, aby każdy JAR działał we własnym kontekście? Najlepiej już w pliku dockerfile.
Nie wiem prawie nic na temat ubuntu, ale znalazłem polecenie xterm
, które otwiera nowy terminal, jednak nie zadziała po wywołaniu pliku JAR. Czego szukam, to instrukcje do wewnątrz pliku dockerfile, które na przykład otwierają nowy terminal, wykonują first.jar, alt-tab do starego terminala i wykonują second.jar tam, lub przynajmniej osiągają to samo.
Dzięki!
Dzięki rozwiązanie skrypt jest dokładnie to, czego szukałem. Działa bez problemów do tej pory! Patrzę też na phusion, na wypadek, gdyby coś się zepsuło. – buggy
Dobrze to słyszeć! Dodałem przykład, jak można ustawić phusion, aby uruchomić oba słoiki jako oddzielne "usługi". – craeckie