Inhaltsverzeichnis
1. Umgebungsanforderungen
Aktuelle Version meines Dienstes
2. Hauptprozess
3. /Fedora
2. Befehlsinstallation:
Für Debian/Ubuntu/Mint
Für RHEL/CentOS/Fedora
6.常见问题
Heim Java javaLernprogramm Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

May 20, 2023 pm 06:55 PM
docker springboot runner

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.

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

3. /Fedora

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
Nach dem Login kopieren

2. Befehlsinstallation:

Für Debian/Ubuntu/Mint

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
Nach dem Login kopieren

Für RHEL/CentOS/Fedora

sudo apt-get install gitlab-ci-multi-runner
Nach dem Login kopieren

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

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

Registrierte Läufer anzeigen: gitlab-runner list

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

Alle Registrierungen abbrechen: gitlab-runner unregister --all-runners

Gehen Sie zurück zu Server B und führen Sie den Befehl aus
    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:
Geben Sie das Token ein , siehe Bild oben

gitlab-runner register

Geben Sie eine Beschreibung für den Runner ein:Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiertGeben 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 für den Runner ein:
  • Geben Sie einen optionalen Wartungshinweis ein


  • Geben Sie einen Executor ein: Docker+Maschine, Docker-SSH+Maschine, Benutzerdefiniert, Docker-Windows, Docker-SSH, SSH, Kubernetes, Docker, Parallelen, Shell, Virtualbox:
  • 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

  • .gitlab-ci.yml
  • sudo yum -y install gitlab-ci-multi-runner
    Nach dem Login kopieren

    Docker-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
Nach dem Login kopieren

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
Nach dem Login kopieren

5. Testen Sie

Senden Sie den Code der lokalen Idee einmal an den Entwicklungszweig, und er läuft bereitsWie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

点进去看,出现问题

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

这里提示我们的git版本太低了

当前git版本:

[root@localhost local]# git --version
git version 1.8.3.1
Nach dem Login kopieren

升级最新版git后:

[root@localhost yum.repos.d]# git --version
git version 2.24.4
Nach dem Login kopieren

回到gitlab后台,这里手动再执行一次:

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

最新的一次已通过 passed:

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

查看日志的方法,进第一个build查看日志,获取项目的路径(大家有更好的方法可以告诉下我)

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

cd到 项目的docker目录,使用

docker-compose logs -ft
Nach dem Login kopieren

测试接口:

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

6.常见问题

问题1:自动化部署build报错:

Wie Gitlab-runner+Docker die automatische Bereitstellung von SpringBoot-Projekten implementiert

解决方法,执行命令:

sudo chmod 777 /var/run/docker.sock
Nach dem Login kopieren

问题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
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verpacken Sie ein Projekt mit Pycharm So verpacken Sie ein Projekt mit Pycharm Apr 25, 2024 am 03:54 AM

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.

Architektur und Praxis verteilter PHP-Systeme Architektur und Praxis verteilter PHP-Systeme May 04, 2024 am 10:33 AM

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

Docker schließt die lokale Bereitstellung des großen Open-Source-Modells LLama3 in drei Minuten ab Docker schließt die lokale Bereitstellung des großen Open-Source-Modells LLama3 in drei Minuten ab Apr 26, 2024 am 10:19 AM

Ü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

Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung May 08, 2024 pm 02:21 PM

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.

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

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

So installieren Sie Deepseek So installieren Sie Deepseek Feb 19, 2025 pm 05:48 PM

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.

Wie kann die Leistung von Java-Funktionen durch Containerisierung optimiert werden? Wie kann die Leistung von Java-Funktionen durch Containerisierung optimiert werden? Apr 29, 2024 pm 03:09 PM

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 JavaEE-Anwendungen mithilfe von Docker-Containern bereit Stellen Sie JavaEE-Anwendungen mithilfe von Docker-Containern bereit Jun 05, 2024 pm 08:29 PM

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.

See all articles