Konfiguracja rejestru kontenerów Gitlab

Konfiguracja rejestru kontenerów Gitlab
W naszym ostatnim poście pokazaliśmy, jak możesz skonfigurować instancję Gitlab, aby zarządzać projektami organizacji lub osobistymi. Zalecaliśmy użycie FQDN i mieć dostępną instancję Gitlab w HTTPS. Ponieważ większość aplikacji jest pakowana jako kontenery, rozsądne jest skonfigurowanie rejestru kontenerów, w którym różne wersje aplikacji, a także różne komponenty mogą być przechowywane jako obrazy Docker.

Jeśli nie wiesz, co to jest rejestr kontenera, nie martw się. Stanie się jasne, gdy faktycznie wepchniesz swój pierwszy obraz kontenera do instancji Gitlab. Na razie pomyśl o nich jako repozytoriach zdjęć kontenerowych. To nie są uruchomione pojemniki, ale tylko obrazy (zwykłe dane) siedzące w zdalnej instancji Gitlab.

Dlaczego miałbyś chcieć rejestru kontenerów Gitlab?

Są szanse, że Twoja aplikacja jest pakowana jako pojedynczy obraz Docker lub zbiór takich obrazów. Oznacza to, że różne wersje będą powiązane z różnymi obrazami, a rejestr kontenerów pomoże ci śledzić je indywidualnie, a także zobaczyć, które z nich mają być połączone razem w określonym wydaniu.

Rejestr polega na kontenerach, jakie repozytorium to kod, a gitlab to jedno miejsce do obsługi wszystkich.

Wymagania wstępne

  1. Działający instancja Gitlab nad HTTPS
  2. Dostęp do instancji
  3. Dostęp do modyfikacji rekordów DNS nazwy domeny

Zakładamy, że nasz Gitlab działa Gitlab.przykład.com .

Rejestr DNS i TLS Certyfikaty

Musisz być użytkownikiem głównym, aby włączyć funkcję rejestru kontenerów w instancji Gitlab. Poszczególni użytkownicy mogą następnie wybrać skorzystanie z tej funkcji w swoich odpowiednich projektach, jeśli tak chcą. Istnieją na dwa sposoby:

  1. Ponownie wykorzystaj istniejącą nazwę domeny i certyfikaty TLS dla Gitlab.przykład.com i uruchom rejestr na innym porcie.
  2. Wskaż inną nazwę domeny, powiedzmy, rejestr.Gitlab.przykład.com na ten sam adres IP, na którym Gitlab działa i skonfiguruje tam rejestr.

Chodźmy z drugą opcją, ponieważ jest znacznie bardziej profesjonalna.

Krok 1: Dodaj rekord dla rejestr.Gitlab.przykład.com wskazując na ten sam IP, w którym działa instancja Gitlab.

Krok 2: Zatrzymaj usługi GitLab działające na twoim serwerze.

$ sudo gitlab-cTl stop

Krok 3: Dodaj klienta ACME Certbot PPA do systemu i zainstaluj certbot.

$ sudo add-apt-repozytory PPA: certbot/certbot
Aktualizacja $ sudo apt
$ sudo apt instal instaluj certbot

Krok 4: Uzyskaj certyfikaty od Let's Encrypt.

$ certbot certonly

Zobaczysz wiadomość taka:
„”
Jak chciałbyś uwierzytelnić się z Acme CA?
--
1: Zwirowaj tymczasowy serwer Webs (samodzielny)
2: Umieść pliki w katalogu Webroot (Webroot)
--
Wybierz odpowiedni numer [1-2], a następnie [Enter] (naciśnij „C”, aby anulować): 1
„”

To poprosi o e -mail, poproś o uzgodnienie ich warunków usług, a co najważniejsze, poproś o nazwę domeny, która byłaby rejestr.Gitlab.przykład.com W naszym przykładowym przypadku. Dostaniesz wiadomość z informacją, czy certyfikaty zostały uzyskane. Gdyby tak było, przejdź do kroku 5

Krok 5: Teraz, gdy mamy nasze certyfikaty, nadszedł czas, aby umieścić je w katalogach związanych z Gitlab.

$ cp/etc/limsecrrypt/na żywo/rejestr.Gitlab.przykład.com/Fullchain.pem
/etc/gitlab/ssl/rejestr.Gitlab.przykład.crt
$ cp/etc/limsecrrypt/na żywo/rejestr.Gitlab.przykład.com/privey.pem
/etc/gitlab/ssl/rejestr.Gitlab.przykład.klucz

Zabezpiecz na nich uprawnienia:

$ chmod 600/etc/gitlab/ssl/rejestr.Gitlab.przykład.com.*

Podobnie jak reszta samouczka, upewnij się, że zastąpiłeś przykład.com z istniejącą nazwą domeny. Ponieważ taka będzie nazwa katalogu, w którym CertBot zapisał certyfikat.

Krok 6: Edytuj konfigurację Gitlab. Otwórz plik /etc/gitlab/gitlab.RB i dodaj następujące linie na dno:

Registry_External_Url 'https: // rejestr.Gitlab.przykład.com '

Jeśli zrobiłeś wszystko ostrożnie, najbardziej skomplikowana część konfiguracji się skończyła! Będziesz teraz mieć uruchomienie rejestru kontenerów, po prostu uruchom:

$ sudo gitlab-cTl rekonfiguruje
$ sudo gitlab-ctl start

Włączanie rejestru i pchanie obrazów

Teraz, gdy mamy do siebie rejestr kontener.

W lewej stronie możesz zobaczyć sekcję rejestru. Możesz kliknąć go, aby zobaczyć szczegółowe instrukcje dotyczące logowania i wcisku obrazów. Wróćmy do naszego lokalnego pulpitu, który powinien zainstalować Docker.

Możemy go użyć do zbudowania prostego kontenera ze sobą i przesuwanie go do tego rejestru. W systemie lokalnym utwórz nowy folder:

$ cd ~
$ mkdir próbka_container

Wewnątrz utwórzmy plik o nazwie Dockerfile i dodaj do niego następującą zawartość:

Od Ubuntu: najnowszy
## Twoje niestandardowe polecenia tutaj

Możesz zachować swój plik Docker z pierwszą linią. Będzie to zwykły pojemnik Ubuntu. Teraz budujesz go ze znaczącym tagiem (użyjemy znacznika mój projekt która jest taka sama jak nasza nazwa projektu Gitlab, jest to ważne). W tym samym katalogu:

$ Docker Build -t Registry.Gitlab.przykład.com//mój projekt .

Pamiętaj, aby zastąpić swoją nazwę użytkownika Gitlab zamiast zastępczego użytego w powyższym poleceniu.

Po prostu tworzy pojemnik Ubuntu wraz z pobieraniem obrazu. Ten obraz jest popychany. Jeśli zmodyfikujesz kontener i utworzysz z nim nowy obraz (używając Docker zatem polecenie będzie to nowy obraz). Przesuńmy obraz wanilii Ubuntu do naszego rejestru.

Najpierw musimy zalogować się za pomocą naszej nazwy użytkownika i hasła Gitlab:

$ Docker Login Registry.Gitlab.przykład.com

Następnie uruchomić:

$ Docker Build -t Registry.Gitlab.przykład.com/root/my-proct .
$ Docker Push Registry.Gitlab.przykład.com/root/my-proct

Jeśli nie masz pewności, jaki powinien być tag twojego kontenera, odwiedź stronę rejestru projektu, a pojawią się jasne instrukcje. Jeśli polecenie Docker Push działało poprawnie, możesz zobaczyć, jak nowy obraz Docker jest przesłany (lub popychany) w instancji Gitlab. Jakby pokazano w moim przypadku:

Wniosek

Kontrola wersji to znacznie więcej niż tylko zarządzanie kodem źródłowym. Stale się poprawia, aby pomieścić wszechstronną gamę wymagań, których każdy projekt oprogramowania może wymagać nieoczekiwanie. Rejestr kontenera to tylko wierzchołek góry lodowej. Możesz mieć rurociągi CD/CI, zaawansowane zarządzanie konfiguracją, autoryzacja za pośrednictwem tokenów i wiele innych funkcji włączonych w Gitlab. Mam nadzieję, że nauczyłeś się czegoś nowego o tej wspaniałej technologii w tym samouczku.

Daj nam znać, jeśli jest coś, co chcesz, abyśmy się omówili!