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 $ 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: 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 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:
|
<<: Vue implementiert die Funktion zum Aufrufen der Handykamera und des Albums
>>: Ändern des Standarddatenverzeichnisses von MySQL 8.0 (schneller Vorgang ohne Konfiguration)
Zunächst stellen wir vor, wie (1) MySQL 5.7 hat e...
einführen In diesem Kapitel wird hauptsächlich de...
Inhaltsverzeichnis MAH 1. Einführung in die MAH-A...
Warum kann es die Höhe festlegen, aber im Gegensat...
Win10 + Ubuntu 20.04 LTS Dual-System-Installation...
Betriebssystem: Windows 10 MySQL-Version: 8.0.13-...
Vorwort BINARY und VARBINARY ähneln in gewisser W...
Letztes Wochenende bereitete sich ein Bruderproje...
Im vorherigen Artikel wurde der Docker-Dienst ins...
1. MIME: Mehrzweck-Internet-Mail-Erweiterungen Da...
1. CLion herunterladen, installieren und aktivier...
Vorwort Wenn Sie die Quelle der Website-Besuche z...
Vorwort Dieser Artikel stellt hauptsächlich den r...
Mehrere Spalten haben zunächst unterschiedliche I...
Inhaltsverzeichnis 1. Software- und Systemabbild ...