Detaillierte Bereitstellung von Docker+Gitlab+Gitlab-Runner

Detaillierte Bereitstellung von Docker+Gitlab+Gitlab-Runner

Umfeld

Server: centos7

Kunde: Fenster

Stellen Sie Docker+Gitlab+Gitlab-Runner auf CentOS7 bereit und verwenden Sie eine SSH-Verbindung unter Win10. Entwickler müssen nur Code übermitteln, um Projektdateien hochzuladen, Bilder zu verpacken und Tests zu veröffentlichen und auszuführen.

1. Installieren Sie Docker und Docker-Compose auf CentOS7

Docker installieren:

1. Docker erfordert eine Kernelversion des CentOS-Systems, die höher als 3.10 ist. Überprüfen Sie die Voraussetzungen auf dieser Seite, um festzustellen, ob Ihre CentOS-Version Docker unterstützt.

Verwenden Sie den Befehl uname -r, um Ihre aktuelle Kernelversion zu überprüfen

 $ uname -r

2. Melden Sie sich mit root -Rechten bei CentOS an. Stellen Sie sicher, dass das Yum-Paket auf die neueste Version aktualisiert ist.

$ sudo yum aktualisieren

3. Deinstallieren Sie die alte Version (falls die alte Version installiert wurde)

$ sudo yum entfernen Docker Docker-Common Docker-Selinux Docker-Engine

4. Installieren Sie die erforderlichen Softwarepakete. yum-util stellt die Funktion yum-config-manager bereit. Die anderen beiden sind vom Devicemapper-Treiber abhängig.

$ sudo yum install -y yum-utils Gerätemapper-Persistent-Data lvm2

5. Yum-Quelle einrichten

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6. Sie können alle Docker-Versionen in allen Repositorys anzeigen und eine bestimmte Version zur Installation auswählen

$ yum-Liste docker-ce --showduplicates | sort -r 

7. Docker installieren

$ sudo yum install docker-ce #Da im Repo standardmäßig nur das stabile Repository aktiviert ist, wird hier die neuste stabile Version 17.12.0 installiert. $ sudo yum install <FQPN> # Beispiel: sudo yum install docker-ce-17.12.0.ce
Wenn ein Fehler auftritt:
Problem: Paket docker-ce-3:19.03.8-3.el7.x86_64 erfordert containerd.io >= 1.2.2-3, aber keiner der Anbieter kann installiert werden. Lösung: https://www.cnblogs.com/suanmiaoup/p/12772140.htmlGeben Sie ein: yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpmGeben Sie erneut ein: yum install docker-ce docker-ce-cli containerd.io 

8. Starten und beitreten des Bootvorgangs

$ sudo systemctl Docker starten
$ sudo systemctl Docker aktivieren

9. Überprüfen Sie, ob die Installation erfolgreich war (das Vorhandensein von Client- und Serviceteilen zeigt an, dass die Docker-Installation und der Start erfolgreich waren).

$ Docker-Version 

10. Es wird empfohlen, die Docker-Image-Quelle zu ändern:

1. Ändern oder erstellen Sie die Datei daemon.json: vi /etc/docker/daemon.json

Schreiben Sie die folgende Konfiguration in die Datei, speichern Sie sie und beenden Sie sie (wenn Sie mit der Bedienung nicht vertraut sind, versuchen Sie es mit dem Baidu-Befehl „vi“):

{

  "Registrierungsspiegel": ["http://hub-mirror.c.163.com"]

}

2. Docker neu starten: systemctl restart docker

Installieren Sie Docker-Compose:

Offizielle Referenz-Website: https://docs.docker.com/compose/install/

1. Führen Sie diesen Befehl aus, um die neueste Version von Docker Compose herunterzuladen:

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2. Wenden Sie ausführbare Berechtigungen auf die Binärdatei an:

sudo chmod +x /usr/local/bin/docker-compose

2. Ziehen Sie die chinesische Version des Gitlab-Image

Adresse: https://hub.docker.com/r/twang2218/gitlab-ce-zh

1. Verwenden Sie xshell + xftp, um Ordner zum Speichern von Protokollen, Konfigurationen und Daten in centos7 zu erstellen

Die Ordnerstruktur ist wie folgt:

gitlab
  -Konfiguration
  -Protokolle
  -Daten
docker-compose.yml

2. Beginnen Sie mit der Verwendung von docker-compose.yml

Version: '3'
Leistungen:
  gitlab:
   Bild: „twang2218/gitlab-ce-zh:11.1.4“
   Neustart: sofern nicht gestoppt
   Hostname: „gitlab.domain.com“
   Containername: Gitlab
   Umfeld:
    TZ: „Asien/Shanghai“
    GITLAB_OMNIBUS_CONFIG: |
     externe_URL 'http://gitlab.domain.com/'
     registry_external_url 'https://gitlab.domain.com'
     gitlab_rails['gitlab_shell_ssh_port'] = 1022
     gitlab_rails['Zeitzone'] = 'Asien/Shanghai'
     # gitlab_rails['smtp_enable'] = true
     # gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
     # gitlab_rails['smtp_port'] = 465
     # gitlab_rails['smtp_user_name'] = "[email protected]"
     # gitlab_rails['smtp_password'] = "Passwort"
     # gitlab_rails['smtp_authentication'] = "Anmelden"
     # gitlab_rails['smtp_enable_starttls_auto'] = wahr
     # gitlab_rails['smtp_tls'] = wahr
     # gitlab_rails['gitlab_email_from'] = '[email protected]'
   Häfen:
    - „80:80“
    - '443:443'
    - '1022:22'
   Bände:
    - ./data:/var/opt/gitlab
    - ./config:/etc/gitlab
    - ./logs:/var/log/gitlab

Wenn Ihr Server einen Domänennamen hat, ersetzen Sie gitlab.domain.com oben durch den tatsächlichen Domänennamen.

Während des Experiments können Sie zum einfachen Testen auch /etc/hosts direkt ändern. Beispiel: 127.0.0.1 gitlab.example.com

3. Wechseln Sie mit cd in das Gitlab-Verzeichnis, führen Sie docker-compose up -d aus, um es zu starten, und warten Sie einen Moment. .

4. Öffnen Sie nach Abschluss des Startvorgangs den Browser und besuchen Sie gitlab.domain.com

5. SSH-Verbindung zu GitLab

Zuerst müssen wir einen SSH-Schlüssel erhalten, geben Sie ein

Katze ~/.ssh/id_rsa.pub

Wenn Zeichen erscheinen, die mit ssh-rsa beginnen, bedeutet dies, dass lokal bereits ein SSH-Schlüssel vorhanden ist und wir ihn direkt verwenden können. Wenn nicht, müssen wir selbst einen SSH-Schlüssel erstellen.

6. SSH-Schlüssel erstellen

Geben Sie den folgenden Befehl ein, um einen SSH-Schlüssel zu erstellen.

ssh-keygen -t rsa -C "[email protected]" -b 4096

Nach Abschluss können Sie den obigen Cat-Befehl oder pbcopy eingeben, um den generierten SSH-Schlüssel direkt zu kopieren.

pbcopy < ~/.ssh/id_rsa.pub

Gehen Sie in GitLab zu „Konto“ – „Einstellungen“ und suchen Sie nach SSH-Schlüsseln, um diesen Schlüssel hinzuzufügen.

7. SSH-Verbindungsport 1022

Normalerweise können Sie bereits den Git-Befehl verwenden, um eine Verbindung mit dem von uns bereitgestellten Gitlab herzustellen. Der Unterschied besteht hier jedoch darin, dass wir Port 22 des Containers dem Port 1022 des Hosts zugeordnet haben. Daher müssen wir den Port für die Verbindung angeben.

ssh -p 1022 [email protected]

Außerdem müssen Sie in der Konfigurationsdatei von GitLab den SSH-Port ändern (sofern dieser bereits oben konfiguriert wurde, ist dies nicht erforderlich), da sonst keine Verbindung mit der für uns in GitLab generierten Projektverbindungsadresse hergestellt werden kann. /gitlab/config/gitlab.rb

gitlab_rails['gitlab_shell_ssh_port'] = 1022

Starten Sie nach dem Ändern des SSH-Ports den Gitlab-Container neu. Anschließend lautet die SSH-Verbindungsadresse unseres Projekts:

ssh://[email protected]:1022/test/projektname.git

An diesem Punkt haben wir die Bereitstellung von GitLab abgeschlossen.

3. Ziehen Sie das Gitlab-Runner-Image

Adresse: https://hub.docker.com/r/gitlab/gitlab-runner

1. Verwenden Sie xshell + xftp, um Ordner zum Speichern von Protokollen, Konfigurationen und Daten in centos7 zu erstellen

Die Ordnerstruktur ist wie folgt:

Gitlab-Runner
  -Konfiguration
docker-compose.yml

2. Beginnen Sie mit der Verwendung von docker-compose.yml

Version: '3'
Leistungen:
  Läufer:
   Bild: „gitlab/gitlab-runner:v11.4.2“
   Containername: Gitlab-Runner
   Neustart: immer
   Netzwerke:
    -gitlab_default
   Bände:
    - ./config:/etc/gitlab-runner
    – /var/run/docker.sock:/var/run/docker.sock
Netzwerke:
 gitlab_default:
  extern: wahr

Unter diesen ist gitlab_default das Netzwerk von Gitlab oben

Hinweis: Die Version von gitlab-runner sollte möglichst mit der von gitlab übereinstimmen, sonst können Sie keine Verbindung zu gitlab herstellen

3. Wechseln Sie in das Gitlab-Verzeichnis und führen Sie docker-compose up -d aus, um zu starten

4. Konfigurieren Sie gitlab-runner für die Verbindung mit gitlab

1. Registrieren Sie gitlab-runner

docker exec -it gitlab-runner gitlab-runner registrieren

2. Wir geben http://gitlab.domain.com oder http://ip:port ein, das ist das GitLab, das wir lokal installiert haben

3. Bitte geben Sie das gitlab-ci-Token für diesen Runner ein

Du findest es im Bereich Projektmanagement->Runner (der Freigabetyp Runner ist hier eingetragen)

4. Geben Sie eine Beschreibung ein, zum Beispiel: test

5. Geben Sie ein Tag ein (Sie können es leer lassen, Sie können es später bearbeiten)

6. Wählen Sie aus, ob ausgeführt werden soll, wenn nicht markierte Einsendungen gefunden werden. Wir wählen true

7. Ob dieser Runner an das aktuelle Projekt gebunden werden soll, wählen wir false

8. Wählen Sie einen Testamentsvollstrecker

Dieser Schritt ist wichtiger (ssh, Docker+Maschine, Docker-SSH+Maschine, Kubernetes, Docker, Parallels, Virtualbox, Docker-SSH, Shell)

Wir wählen Docker

9. Wählen Sie das Standardimage: docker:stable

Nach der Registrierung können wir den Runner sehen, den wir gerade auf der GitLab-Seite registriert haben, um das Gitlab-CI-Token zu erhalten.

Gleichzeitig können Sie eine unter gitlab-runner/config generierte config.toml-Datei sehen. Der Inhalt der Datei lautet wie folgt:

gleichzeitig = 1
Prüfintervall = 0

[[Läufer]]
 Name = "Test"
 URL = "http://192.168.1.157/"
 token = "69c0ff735a76c0bb3cce977a361661"#Dieses Token wird von gitlab-runner entsprechend dem Token im dritten Schritt generiert. executor = "docker"
 [Läufer.Docker]
  extra_hosts = ["gitlab.domain.com:192.168.1.157"] #Wenn Sie in den obigen Schritten keine Verbindung zu Gitlab herstellen können, liegt dies daran, dass Gitlab-Runner gitlab.domain.com im Docker nicht auflösen kann. Dies kann durch Hinzufügen der Konfiguration tls_verify = false gelöst werden.
  image = "docker:stable" #Dies liegt daran, dass dieses Image Tools wie Docker enthält. Daher muss Docker nicht installiert werden, wenn die von gitlab-runner ausgeführte Datei .gitlab-ci.yml Docker-Anweisungen enthält. Referenzadresse: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html
  privileged = false #Normalerweise wahr bei Verwendung von Docker-in-Docker
  disable_cache = falsch
  Volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
  shm_size = 0
  [läufer.cache]

Oder Sie konfigurieren es zuerst und gitlab-runner lädt die Konfigurationsdatei automatisch, wenn es ausgeführt wird.

Referenzadresse: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html

5. Senden Sie den Projektcode, um CI/CD abzuschließen

1. Fügen Sie .gitlab-ci.yml zum Stammverzeichnis des Projekts hinzu. Nach dem Senden des Projektcodes wird die Datei automatisch ausgeführt, um das Projekt zu verpacken.

Bild: Docker:Stable

Bild:
 Name: docker/compose:1.23.2 # Tag auf die gewünschte Version aktualisieren. Das liegt daran, dass mein Skript unten docker-compose verwendet.
 Einstiegspunkt: ["/bin/sh", "-c"]

vor_Skript:
 -docker-Version
 -docker-compose-Version
 
bauen:
 Skript: #Schreiben Sie das folgende Skript entsprechend Ihrer eigenen Situation - COMPOSE_HTTP_TIMEOUT=200 docker-compose -f docker-compose-efk.yml up -d #Das liegt daran, dass mein Projekt mit Docker-Compose eingerichtet wurde - COMPOSE_HTTP_TIMEOUT=200 docker-compose up -d --build --force-recreate

2. Senden Sie den Code über Git unter Win10

Wechseln Sie mit cd zum Stammverzeichnis des Projekts. Wenn Git installiert ist, können Sie Git Bash direkt im Stammverzeichnis öffnen, um es auszuführen. Wenn es nicht installiert ist, können Sie auch Powershell öffnen

git init #Wenn es noch nicht initialisiert wurde git add . #Alle Projekte hinzufügen git commit -m "init" An git senden
git remote add origin [email protected]:1022/root/test.git #Beachten Sie, dass der Port 1022 ist. Dies wird beim Ausführen von Gitlab oben angegeben. Führen Sie es einfach einmal aus. git push -u origin master #Push zum Server gitlab

Dies ist das Ende dieses Artikels über die detaillierte Bereitstellung von Docker+Gitlab+Gitlab-Runner. Weitere relevante Inhalte zur Bereitstellung von Docker Gitlab Gitlab-Runner finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So konfigurieren Sie den Runner-Container in Docker

<<:  Vue implementiert die Funktion zum Aufrufen der Handykamera und des Albums

>>:  Ändern des Standarddatenverzeichnisses von MySQL 8.0 (schneller Vorgang ohne Konfiguration)

Artikel empfehlen

Eine schnelle Lösung für den ersten Anmeldefehler in mysql5.7.20

Zunächst stellen wir vor, wie (1) MySQL 5.7 hat e...

Mit vsftp einen FTP-Server unter Linux aufbauen (mit Parameterbeschreibung)

einführen In diesem Kapitel wird hauptsächlich de...

Schritte zum Erstellen der MHA-Architekturbereitstellung in MySQL

Inhaltsverzeichnis MAH 1. Einführung in die MAH-A...

Ist das Tag „li“ ein Blockelement?

Warum kann es die Höhe festlegen, aber im Gegensat...

Detaillierte Erklärung der binären und varbinären Datentypen in MySQL

Vorwort BINARY und VARBINARY ähneln in gewisser W...

Konfigurieren Sie nginx so, dass es zur Systemwartungsseite umleitet

Letztes Wochenende bereitete sich ein Bruderproje...

Implementierung der Docker-Bereitstellung von Webprojekten

Im vorherigen Artikel wurde der Docker-Dienst ins...

Beispiel für die Einrichtung eines mehrspaltigen Layouts gleicher Höhe mit CSS

Mehrere Spalten haben zunächst unterschiedliche I...