Docker, jak wiemy, jest otwartą platformą dla programistów i administratorów systemów do tworzenia, wysyłania i uruchamiania aplikacji rozproszonych, zarówno na laptopach, maszynach wirtualnych centrum danych, jak i w chmurze.
dzisiaj sprawdzimy jak skonfigurować Jenkinsa do budowania obrazów Dockera na podstawie pliku Dockerfile. Poniżej znajdują się kroki, w jaki sposób można używać Dockera w potoku CI/CD, używając obrazów jako artefaktu budowania, który może być promowany w różnych środowiskach i ostatecznie produkowany.
Krok #1 : Uruchom Jenkins
obecnie mam Jenkinsa działającego na kontenerze Docker, jeśli wykonasz polecenie docker ps
pokaże Ci stan kontenera.
Uruchom pulpit Jenkinsa
Krok #2 : Skonfiguruj wtyczki i rozpocznij budowanie obrazów Dockera.
naszym pierwszym krokiem jest skonfigurowanie wtyczki Docker. Za każdym razem, gdy kompilacja Jenkinsa wymaga Dockera, tworzy „agenta w chmurze” za pomocą wtyczki. Agent będzie kontenerem Docker skonfigurowanym do rozmowy z naszym demonem Docker.Zadanie kompilacji Jenkins użyje tego kontenera do wykonania kompilacji i utworzenia obrazu przed zatrzymaniem. Obraz Dockera zostanie zapisany na skonfigurowanym Demonie Dockera. Obraz można następnie wypchnąć do rejestru Docker gotowego do wdrożenia.
- gdy znajdziesz się w pulpicie nawigacyjnym Jenkins, wybierz Zarządzaj Jenkinsem po lewej stronie.
- na stronie konfiguracji wybierz opcję Zarządzaj wtyczkami.
- strona zarządzania wtyczkami wyświetli interfejs z zakładkami. Kliknij dostępne, aby wyświetlić wszystkie wtyczki Jenkins, które można zainstalować.
- za pomocą pola wyszukiwania wyszukaj wtyczkę Docker. Istnieje wiele wtyczek Dockera, zaznacz pole wyboru Wtyczka Dockera.
- na tej stronie Zainstaluj wtyczkę Git, aby uzyskać kod źródłowy z repozytorium Git.
- kliknij Zainstaluj bez ponownego uruchamiania u dołu.
- wtyczki zostaną teraz pobrane i zainstalowane. Po zakończeniu kliknij link wróć do góry strony.
po zainstalowaniu wtyczek Dockera & GIT możemy teraz skonfigurować sposób uruchamiania kontenerów Dockera.
Produkty od Amazon.in
- -17%
- Mastering Docker –
- Cena: INR 828.00
- było: INR 999.00
- -17%
- ciągła dostawa z Docker i Jenkins
- Cena: INR 829.00
- było: INR 999.00
- Docker i Kubernetes dla programistów Java
- Cena: INR 828.00
- Docker na Windows
- Cena: INR 828.00
- Docker: Up And Running-Wysyłka niezawodnych kontenerów w produkcji
- Cena: Brak w magazynie
- Docker: poradnik dla początkujących
- Cena: sprawdź na Amazonie
- Docker Deep Dive
- Cena: sprawdź na Amazonie
- Docker: 5 książek w 1-Przewodnik dla początkujących + porady & triki + proste & skuteczne strategie+ najlepsze praktyki & zaawansowane strategie
- Cena: sprawdź na Amazon
- RY ’ s Git Tutorial
- Cena: Sprawdź na Amazon
” „
konfiguracja będzie używana przez Wtyczkę, który Obraz Dockera będzie używany przez agenta, a który Demon Dockera będzie uruchamiał kontenery i na nich buduje.Wtyczka traktuje Dockera jako dostawcę chmury, uruchamiając kontenery w zależności od potrzeb kompilacji.
Krok #3 : Skonfiguruj agenta Docker
- na pulpicie nawigacyjnym Jenkins wybierz Zarządzaj Jenkinsem.
- wybierz Konfiguruj System, aby uzyskać dostęp do głównych ustawień Jenkins.
- na dole znajduje się rozwijane menu o nazwie Dodaj nową chmurę. Wybierz Docker z listy.
- możesz teraz skonfigurować opcje kontenera. Ustaw nazwę agenta na docker-agent.
- „Url dokera” jest miejscem, w którym Jenkins uruchamia kontener agenta. W tym przypadku użyjemy tego samego demona, co uruchomiony Jenkins, ale w rzeczywistym świecie powinien on być oddzielną instancją, aby mógł się skalować.
- Użyj połączenia testowego, aby sprawdzić, czy Jenkins może rozmawiać z demonem Dockera. Powinieneś zobaczyć zwrócony numer wersji Dockera.
teraz wtyczka może komunikować się z Dockerem,następnym krokiem byłoby skonfigurowanie sposobu uruchamiania obrazu Dockera dla agenta.
- korzystając z listy rozwijanej obrazy, wybierz opcję Dodaj szablon dokowania.
- dla obrazu Dockera użyj przykładowego, który ma klienta Dockera benhall/dind-jenkins-agent. Ten obraz jest skonfigurowany z klientem Dockera i dostępny pod adresem https://hub.docker.com/r/benhall/dind-jenkins-agent/
- aby włączyć Kompilacje aby określić Dockera jako agenta kompilacji, Ustaw Etykietę docker-agent.
- Jenkins używa SSH do komunikacji z agentami. Dodaj nowy zestaw „poświadczeń”. Nazwa użytkownika to jenkins, a hasło to jenkins.
- na koniec rozwiń sekcję Ustawienia kontenera, klikając przycisk. W polu tekstowym” woluminy ” wpisz / var / run / docker.sock: / var / run / docker.sock
- kliknij Zapisz.
Krok #4 : Przetestuj konfigurację
aby przetestować konfigurację utwórz nowe zadanie do
- na pulpicie nawigacyjnym Jenkins wybierz Utwórz nowe zadania typu Freestyle project & utwórz nowe zadanie ex.Demo Jenkinsa.
- budowa będzie zależeć od posiadania dostępu do Dockera. Korzystając z opcji „Ogranicz, gdzie można uruchomić ten projekt”, możemy zdefiniować etykietę, którą ustawiliśmy w naszym skonfigurowanym agencie Docker. Ustaw „Label Expression” na docker-agent. Powinieneś mieć konfigurację „etykieta jest obsługiwana przez brak węzłów i 1 chmurę”.
- wybierz typ repozytorium jako Git i ustaw repozytorium.Używam mojej lokalizacji GIT https://github.com/karthi4india/jenkins/.
- możemy teraz dodać nowy krok kompilacji za pomocą rozwijanego menu. Wybierz Polecenie Wykonaj Powłokę.
- Dockerfile zajmuje się build, Jenkins musi tylko wywołać build i podać przyjazną nazwę.
etap budowy :
ls
docker info
docker build -t jenkins-demo:${BUILD_NUMBER} .
docker tag jenkins-demo:${BUILD_NUMBER} jenkins-demo:latest
docker images
pierwsze polecenie wyświetla listę wszystkich plików w katalogu, który zostanie zbudowany. Podczas wywoływania Docker build używamy numeru kompilacji Jenkinsa jako znacznika obrazu. To pozwala nam na wersję naszych obrazów Dockera. Oznaczamy również kompilację najnowszą.
plik Docker:
FROM scratch
EXPOSE 80
COPY http-server /
CMD
po lewej stronie wybierz opcję Zbuduj teraz. Powinieneś zobaczyć zaplanowaną kompilację z Komunikatem ” (pending-Waiting for next available executor)”.
Jenkins uruchamia kontener i łączy się z nim przez SSH. Czasami może to zająć chwilę lub dwie.
możesz zobaczyć postęp za pomocą
docker logs --tail=10 jenkins
po zakończeniu kompilacji powinieneś zobaczyć obraz i Tagi za pomocą CLI Dockera
docker images
podoba Ci się ten post? Nie zapomnij podzielić się nim!