2017-02-02 18 views
5

Mam projekt wiosennego rozruchu i chcę automatycznie przełożyć mój słoik do pojemnika. Jak to zrobić poprawnie? Do tej pory wszystko, co widzę, jest w ten sposób. To właściwa droga?Redeploy Spring-boot application w oknie dokowanym?

# cd /home/jdev; 
# sudo docker stop ca_spring_boot; 
# sudo docker rm ca_spring_boot; 
# sudo docker rmi ca_app_image; 
# sudo docker build -t ca_app_image .; 
# sudo docker run -d -p 8888:8080 --name ca_spring_boot ca_app_image 

A moja Dockerfile

FROM java:8 
VOLUME /tmp 
EXPOSE 8080 
ADD docker-storage/jenkins/workspace/CA/build/libs/ca-1.0.jar app.jar 
RUN bash -c 'touch /app.jar' 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=container","-jar","/app.jar"] 

Dzięki.

+0

Czy chcesz dokonać ponownej instalacji na serwerze produkcyjnym? –

+0

Nie, to jest serwer DEV. Po prostu chcę utworzyć CI i CD i nauczyć się trochę dokera. – JDev

Odpowiedz

6

Można zamontować wolumin i umieścić tam plik app.jar. Nie trzeba więc odbudowywać obrazu, wystarczy ponownie uruchomić kontener.

Dockerfile

FROM java:8 
ENTRYPOINT [ "sh", "-c", "java -jar /mnt/app.jar" ] 

Połóż app.jar w/dokowanym/wiosna/

budowy i uruchomienia:

docker build -t spring_test . 
docker run -d -v /docker/spring/:/mnt -p 12384:8080 --name spring_test_running spring_test 

przypadku aktualizacji aplikacji sprężyny po prostu zrobić:

docker restart spring_test_running 
+0

Dobre rozwiązanie, na pewno spróbuję. – JDev

+0

Twoje rozwiązanie działa. Dziękuję Ci. Czy mógłbyś mi powiedzieć, jaka jest opcja? "-Djava.security.egd = file:/dev /./ urandom" Potrzebuję? Jeśli tak, po co? Działa również bez niego. – JDev

+1

Ta opcja nie ma wpływu na aplikację sprężyn. Domyślną funkcją losową java jest/dev/random, która zostaje zmieniona na/dev/urandom z opcją "-Djava.security.egd = file:/dev /./ urandom". – Sha7x

1

Previo Odpowiedź nas jest dobra. Ale za każdym razem, gdy chcesz przetestować swój kod, musisz ponownie uruchomić kontener. Ale możemy uniknąć tego problemu. Po prostu użyj Spring dev tool I zamontuj katalog docelowy zgodnie z powyższym opisem.

+1

Jeśli używasz aplikacji źródłowej z "java -jar", narzędzia rozwijania sprężyny zostaną wyłączone. http://stackoverflow.com/a/37702560/3861751 – Sha7x

+0

Tak, używam narzędzi programistycznych. Ale niewiele nie rozumiem, jak to zrobić .. Mam Jenkinsa, tworzy słoik, kolejne kroki? Co muszę zrobić? – JDev

Powiązane problemy