Jenkins to szeroko stosowany serwer automatyzacji typu open source, który pomaga zautomatyzować różne części procesu tworzenia oprogramowania, w tym budowanie, testowanie i wdrażanie aplikacji.
Docker to platforma konteneryzacji, która pozwala nam uruchamiać aplikacje i usługi w izolowanych środowiskach zwanych kontenerami.
W tym samouczku dowiemy się, jak połączyć Jenkinsa z Dockerem, co pozwala nam stworzyć skalowalny i przenośny serwer Jenkinsa.
UWAGA: w tym samouczku użyjemy oficjalnego obrazu jenkins/jenkins z repozytorium Docker Hub. Ten obraz zawiera bieżącą wersję Jenkinsa z obsługą długoterminową (LTS), która jest gotowa do produkcji.
Utwórz sieć
Pierwszym krokiem jest utworzenie nowej sieci Docker w celu wyizolowania instancji Jenkins. Ułatwia to lepszą komunikację.
Aby utworzyć sieć mostkową w Dockerze, możemy uruchomić następujące polecenie:
$ sieć dokowana tworzy jenkins
Tworzy to sieć mostkową zwaną Jenkins.
Uruchom kontener Docker Jenkins
Po skonfigurowaniu sieci możemy uruchomić kontener Jenkins, korzystając z oficjalnego obrazu Dockera Jenkins.
Określamy także sieć i konfigurujemy wolumin dla trwałości danych Jenkinsa. Polecenie jest następujące:
uruchomienie okna dokowanego \--nazwa Jenkins-docker \
--rm \
--odłączyć \
--uprzywilejowany \
--sieć Jenkins \
--alias-sieci okno dokowane \
--środka DOCKER_TLS_CERTDIR = / certyfikaty \
--tom Jenkins-docker-certs: / certyfikaty / klient \
--tom dane Jenkinsa: / był / jenkins_home \
--publikować 2376 : 2376 \
okno dokowane:z \
--sterownik-storage nakładka2
Poprzednie polecenie uruchamia kontener Docker-in-Docker (DinD) o nazwie „jenkins-docker” z podwyższonymi uprawnieniami i konfiguracjami sieciowymi.
Flaga –rm zapewnia, że kontener zostanie automatycznie usunięty po zatrzymaniu. Kontener jest podłączony do sieci Jenkins za pomocą aliasu sieciowego „docker” utworzonego w poprzednim kroku.
Następnie ustawiamy zmienne środowiskowe dla certyfikatów Docker TLS i montujemy woluminy do przechowywania certyfikatów i danych Jenkins.
W następnej sekcji publikujemy port 2376 do komunikacji z demonem Docker.
Na koniec określamy obraz docker:dind i konfigurujemy sterownik pamięci masowej tak, aby korzystał z overlay2.
Uzyskaj dostęp do interfejsu internetowego Jenkins
Po uruchomieniu kontenera możemy uzyskać dostęp do instancji Jenkins z przeglądarki internetowej za pomocą metody adres.
Jeśli chcesz uruchomić prosty kontener Jenkins, możesz użyć następującego polecenia:
Uruchomienie okna dokowanego $ -D -P 8080 : 8080 -P 50000 : 50000 --nazwa Jenkins \--sieć Jenkins \
-W jenkins_home: / był / jenkins_home \
Jenkins / jenkins: lts
Spowoduje to uruchomienie serwera Jenkins bez konieczności konfigurowania innych funkcji, takich jak woluminy, porty powiązań i inne.
Następnie możesz uzyskać dostęp do instancji Jenkins na .
Gdy Jenkins będzie gotowy, Twoja przeglądarka pozwoli Ci szybko skonfigurować serwer Jenkins z żądanymi właściwościami.
Po skonfigurowaniu musisz odblokować Jenkinsa, podając hasło administratora. Można go znaleźć, uruchamiając następujące polecenie:
$ dzienniki dokowane Jenkins
Polecenie wyświetla dzienniki kontenera zawierające hasło Jenkins.
Następnym krokiem jest wybranie i zainstalowanie wtyczek, których chcesz używać w swojej instancji Jenkins. Jeżeli korzystasz z Jenkinsa po raz pierwszy, wybierz polecane wtyczki.
Powinno to umożliwić Jenkinsowi pobranie i zainstalowanie wszystkich domyślnych wtyczek, co pozwala na łatwą interakcję z potokami Jenkins.
Wniosek
W tym samouczku nauczyłeś się, jak skonfigurować serwer Jenkins jako kontener przy użyciu Dockera i oficjalnego obrazu Jenkinsa.