2016-02-15 6 views
5

Nasza organizacja jest stosunkowo nowa dla Docker i Jenkins. Pracujemy nad rozwojem naszego potoku CI z aktualizacji kodu źródłowego (Java) do uruchomionej aplikacji.Najlepszy sposób, aby Jenkins "zaktualizował" działający kontener w doku, gdy obraz został zaktualizowany.

Obecnie Jenkins używa wtyczki do budowania i publikowania Cloudbees Docker, aby zaktualizować obraz po udanej kompilacji. Po prostu ściąga obraz podstawowy (JBoss) i aktualizuje go plikiem WAR aplikacji, który właśnie zbudował (za pośrednictwem Mavena).

Używamy kroku kompilacji "Wyślij komendy przez SSH" do SSH do serwera, w którym znajduje się aktualnie uruchomiony kontener, zatrzymaj kontener z podanym ID obrazu i ponownie uruchom, a następnie uruchom kontener.

Wiem jednak, że musi istnieć lepszy, bardziej elegancki sposób na zrobienie tego. Co zaskakujące, mam problem ze znalezieniem dokumentacji, jak to zrobić. Każda rada byłaby doceniona. Proszę daj mi znać.

Odpowiedz

1

Jeśli chcesz używać tylko Dockera, niewiele więcej możesz zrobić. Używanie Jenkinsa z Dockerem jest już dobrym krokiem naprzód. Być może mógłbyś docker stop zamiast ssh shutdown, ale to nie sprawi, że rzeczy znacznie lepiej.

Dostępne są narzędzia, takie jak Openshift i Fabric8, które pomagają budować przepływy zadań CI i CD. To powinno pomóc. Pamiętaj jednak, że jeśli przyjrzysz się im bliżej, zobaczysz, że kilka z nich jest zbudowanych na podstawie Kubernetes.

Jeśli szukasz workflow gotowy do użycia, podaj Openshift spróbować. Zobacz, co to jest architecture overview. Ma Jenkinsa plugin, które ułatwiają ci życie.

Jeśli chcesz zrobić krok naprzód w tym samym czasie, gdy budujesz swój własny workflow, bez wątpienia Kubernetes jest drogą do zrobienia. Po prostu stworzyło mnóstwo urządzeń, aby zbudować grupę kontenerów, nie narzucając ci pracy. Spójrz na this overview i getting started from CoreOS docs.

Powiązane problemy