


Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert
1. Umgebungsanforderungen
Die Betriebssysteme der folgenden Server sind alle Centos7
Server A: Gitlab
-
Server B: GitlabRunner, Docker, Docker-Compose, Java1.8, Maven3.6.3, Git
ps: Hier können Sie GitlabRunner, Java1.8, Maven3.6.3 und Git von Server B trennen und unabhängig voneinander bereitstellen. Der Grund, warum Java benötigt wird, ist Maven, das zum Verpacken verwendet wird.
Zur Vereinfachung der Demonstration muss Anwendungsserver B nur Docker und Docker-Compose verwenden.
Zugehörige Tutorials zum Aufbau von Diensten finden Sie in offiziellen Dokumenten oder anderen zuverlässigen Blog-Tutorials von Drittanbietern!
Aktuelle Version meines Dienstes
Gitlab: 14.9
GitlabRunner: 14.10.0
Docker: 20.10.14
docker-compose: 1.29.2
Git: 2.31 .1, prüfen Sie im Voraus, ob die neueste Version von Git vorliegt, da sonst später Fehler auftreten.
2. Hauptprozess
Unser Hauptprozess besteht darin, den Code über Gitlab zu verwalten und dann Gitlabs eigene Gitlab CI/CD-Funktion zu verwenden, um sich bei GitlabRunner zu registrieren und zu binden.
Sobald die Bindung erfolgreich ist, wird GitlabRunner jedes Mal aktiviert, wenn der Code übermittelt wird, und das entsprechende Skript wird für die automatische Bereitstellung ausgeführt.
3. /Fedora
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
2. Befehlsinstallation:
Für Debian/Ubuntu/Mint
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
Für RHEL/CentOS/Fedora
sudo apt-get install gitlab-ci-multi-runner
3.2 Starten Sie die Registrierung
1. Öffnen Sie das Warehouse, das Gitlab automatisch bereitstellen muss. 》CI/CD -》Runners.
2. Wie unten gezeigt, sehen Sie die beiden wichtigsten Informationen, die später bei der GitlabRunner-Registrierung verwendet werden: Grundlegender Befehl:Registrieren: gitlab-runner register
Registrierte Läufer anzeigen: gitlab-runner list
- Register Ausführliche Erklärung des Prozesses:
- Geben Sie die GitLab-Instanz-URL ein (zum Beispiel https://gitlab.com/): Geben Sie die Dienst-URL von gitlab ein
- Geben Sie das Registrierungstoken ein:
gitlab-runner register
Geben Sie eine Beschreibung für den Runner ein:Geben Sie die Runner-Beschreibung ein
Geben Sie Tags für den Runner ein (durch Kommas getrennt)
- Geben Sie ein Tag für diesen Gitlab-Runner ein ist sehr wichtig. Im nachfolgenden Verwendungsprozess müssen Sie dieses Tag verwenden, um gitlab-runner anzugeben (yml-Datei, der Job wählt den angegebenen Runner aus, indem er das Tag-Label festlegt).
- Geben Sie einen optionalen Wartungshinweis ein
- Drücken Sie die Eingabetaste um den Ordner „gitlab-runner“ zu beenden und zu installieren. Wichtig!!!
Nachdem wir den Code übermittelt haben, fragen wir: Wie soll ich Shell-Skripte verwenden, um Build und Bereitstellung zu steuern? Gitlab hat uns eine Vorlage zur Verfügung gestellt, mit der eine Datei mit dem Namen .gitlab-ci.yml im Stammverzeichnis des Warehouse erstellt werden soll. Hier nehmen wir ein Springboot-Projekt als Beispiel und fügen 3 Dateien (.gitlab-ci) hinzu Das Originalprojekt. .yml, Dockerfile, docker-compose.yml), der Speicherort und der Inhalt der Datei werden unten angezeigt. Ändern Sie einfach den Inhalt entsprechend Ihren Anforderungen. Sie müssen mit einigen grundlegenden Dateistrukturen und der Syntax von Dockerfile vertraut sein und docker-compose.yml:
- 3 Dateispeicherortkarte
sudo yum -y install gitlab-ci-multi-runner
Nach dem Login kopierenDocker-Ordner im Stammverzeichnis erstellen,
Docker-Datei erstellen:
stages: - build - deploy_dev - clean # 打包镜像 build: stage: build only: - dev script: - $MAVEN_HOME/bin/mvn clean package '-Dmaven.test.skip=true' - cp ./XXX/target/XXX.jar docker/ - cd docker - docker build -t dev/XXX:v1.0.0 . tags: - maven # 部署开发服务器 deploy_dev: stage: deploy_dev only: - dev script: - cd docker - docker-compose down - docker-compose up -d tags: - maven #清理虚悬镜像 clean: stage: clean only: - dev script: - docker rmi $(docker images -q -f dangling=true) tags: - maven
Docker-compose.yml erstellen:
#FROM java:8 #java:8这个镜像体积有643MB,打包镜像后体积太大了,不建议使用 # openjdk:8-jre-alpine 体积最小,只有85MB FROM openjdk:8-jre-alpine # 以下2个RUN解决 java验证码接口报错的问题, RUN echo -e "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main\n\ https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/community" > /etc/apk/repositories RUN apk --update add curl bash ttf-dejavu && \ rm -rf /var/cache/apk/* COPY . /opt/app WORKDIR /opt/app
5. Testen Sie
Senden Sie den Code der lokalen Idee einmal an den Entwicklungszweig, und er läuft bereits
点进去看,出现问题
这里提示我们的git版本太低了
当前git版本:
[root@localhost local]# git --version git version 1.8.3.1
升级最新版git后:
[root@localhost yum.repos.d]# git --version git version 2.24.4
回到gitlab后台,这里手动再执行一次:
最新的一次已通过 passed:
查看日志的方法,进第一个build查看日志,获取项目的路径(大家有更好的方法可以告诉下我)
cd到 项目的docker目录,使用
docker-compose logs -ft
测试接口:
6.常见问题
问题1:自动化部署build报错:
解决方法,执行命令:
sudo chmod 777 /var/run/docker.sock
问题2:docker apline temporary error (try again later) 错误
没有dns导致的
在本机系统上创建daemon文件添加dns,然后重启docker
vim /etc/docker/daemon.json { "dns": ["8.8.8.8"] } sudo service docker restart
Das obige ist der detaillierte Inhalt vonWie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Es gibt vier Möglichkeiten, ein Projekt in PyCharm zu verpacken: Als separate ausführbare Datei verpacken: In das EXE-Einzeldateiformat exportieren. Als Installationsprogramm verpackt: Setuptools-Makefile generieren und erstellen. Als Docker-Image verpacken: Geben Sie einen Image-Namen an, passen Sie die Build-Optionen an und erstellen Sie. Als Container verpacken: Geben Sie das zu erstellende Image an, passen Sie die Laufzeitoptionen an und starten Sie den Container.

Die verteilte PHP-Systemarchitektur erreicht Skalierbarkeit, Leistung und Fehlertoleranz durch die Verteilung verschiedener Komponenten auf mit dem Netzwerk verbundene Maschinen. Die Architektur umfasst Anwendungsserver, Nachrichtenwarteschlangen, Datenbanken, Caches und Load Balancer. Zu den Schritten zur Migration von PHP-Anwendungen auf eine verteilte Architektur gehören: Identifizieren von Dienstgrenzen, Auswählen eines Nachrichtenwarteschlangensystems, Einführung eines Microservices-Frameworks, Bereitstellung für die Containerverwaltung, Diensterkennung

Übersicht LLaMA-3 (LargeLanguageModelMetaAI3) ist ein groß angelegtes Open-Source-Modell für generative künstliche Intelligenz, das von Meta Company entwickelt wurde. Im Vergleich zur Vorgängergeneration LLaMA-2 gibt es keine wesentlichen Änderungen in der Modellstruktur. Das LLaMA-3-Modell ist in verschiedene Maßstabsversionen unterteilt, darunter kleine, mittlere und große, um unterschiedlichen Anwendungsanforderungen und Rechenressourcen gerecht zu werden. Die Parametergröße kleiner Modelle beträgt 8 B, die Parametergröße mittlerer Modelle beträgt 70 B und die Parametergröße großer Modelle erreicht 400 B. Beim Training besteht das Ziel jedoch darin, multimodale und mehrsprachige Funktionalität zu erreichen, und die Ergebnisse werden voraussichtlich mit GPT4/GPT4V vergleichbar sein. Ollama installierenOllama ist ein Open-Source-Großsprachenmodell (LL

Antwort: PHP-Microservices werden mit HelmCharts für eine agile Entwicklung bereitgestellt und mit DockerContainer für Isolation und Skalierbarkeit in Containern verpackt. Detaillierte Beschreibung: Verwenden Sie HelmCharts, um PHP-Microservices automatisch bereitzustellen, um eine agile Entwicklung zu erreichen. Docker-Images ermöglichen eine schnelle Iteration und Versionskontrolle von Microservices. Der DockerContainer-Standard isoliert Microservices und Kubernetes verwaltet die Verfügbarkeit und Skalierbarkeit der Container. Verwenden Sie Prometheus und Grafana, um die Leistung und den Zustand von Microservices zu überwachen und Alarme und automatische Reparaturmechanismen zu erstellen.

Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

Es gibt viele Möglichkeiten, Deepseek zu installieren, einschließlich: kompilieren Sie von Quelle (für erfahrene Entwickler) mit vorberechtigten Paketen (für Windows -Benutzer) mit Docker -Containern (für bequem am besten, um die Kompatibilität nicht zu sorgen), unabhängig von der Methode, die Sie auswählen, bitte lesen Die offiziellen Dokumente vorbereiten sie sorgfältig und bereiten sie voll und ganz vor, um unnötige Schwierigkeiten zu vermeiden.

Die Containerisierung verbessert die Leistung von Java-Funktionen auf folgende Weise: Ressourcenisolation – Gewährleistung einer isolierten Computerumgebung und Vermeidung von Ressourcenkonflikten. Leicht – beansprucht weniger Systemressourcen und verbessert die Laufzeitleistung. Schneller Start – reduziert Verzögerungen bei der Funktionsausführung. Konsistenz – Entkoppeln Sie Anwendungen und Infrastruktur, um ein konsistentes Verhalten in allen Umgebungen sicherzustellen.

Stellen Sie Java EE-Anwendungen mithilfe von Docker-Containern bereit: Erstellen Sie eine Docker-Datei, um das Image zu definieren, erstellen Sie das Image, führen Sie den Container aus, ordnen Sie den Port zu und greifen Sie dann im Browser auf die Anwendung zu. Beispiel für eine JavaEE-Anwendung: Die REST-API interagiert mit der Datenbank und ist nach der Bereitstellung über Docker auf localhost zugänglich.
