Table des matières
Installation
Installez Gitlab
Installer Gitlab Runner
Le packaging du projet SpringBoot nécessite Maven, nous devons d'abord l'installer sur le serveur.
使用
总结
Maison Java javaDidacticiel Si vous n'utilisez plus la fonction CI/CD de Gitlab, vous serez absent.

Si vous n'utilisez plus la fonction CI/CD de Gitlab, vous serez absent.

Jul 30, 2021 pm 05:12 PM
git java springboot

J'ai récemment découvert que la fonction CI/CD de Gitlab peut également réaliser un déploiement automatisé, et qu'elle est assez simple à utiliser ! Si vous utilisez Gitlab comme entrepôt Git, vous pouvez aussi bien essayer sa fonction CI/CD. Cet article prend toujours comme exemple le déploiement automatisé de SpringBoot pour mettre en pratique la fonction CI/DI de Gitlab.

Adresse actuelle du centre commercial du projet de commerce électronique SpringBoot (50 000 + étoiles) : https://github.com/macrozheng/mall

Installation

Pour réaliser un déploiement automatisé via la fonction CI/CD de Gitlab, nous devons installer Gitlab, Gitlab Runner, Maven ces services.

Installez Gitlab

Tout d'abord, installons Gitlab. Les amis qui ne connaissent pas l'installation et l'utilisation de Gitlab peuvent se référer à "Créez votre propre entrepôt Git en 10 minutes".

Utilisez la commande suivante pour exécuter le service Gitlab. Ce qu'il faut noter ici, c'est que l'attribut hostname est ajouté afin que nous puissions accéder à Gitlab via le nom de domaine (afin d'éviter des problèmes inutiles). définissez le compte root dans Gitlab. Mot de passe

docker run --detach \
  --hostname git.macrozheng.com \
  --publish 10443:443 --publish 1080:80 --publish 1022:22 \
  --name gitlab \
  --restart always \
  --volume /mydata/gitlab/config:/etc/gitlab \
  --volume /mydata/gitlab/logs:/var/log/gitlab \
  --volume /mydata/gitlab/data:/var/opt/gitlab \
  -e GITLAB_ROOT_PASSWORD=12345678 \
  gitlab/gitlab-ce:latest
Copier après la connexion

Nous devons accéder à Gitlab via le nom de domaine git.macrozheng.com Si vous n'avez pas de nom de domaine, vous pouvez le faire en modifiant le fichier hôte local

192.168.7.134 git.macrozheng.com
Copier après la connexion
.

Puisque notre Gitlab fonctionne sur le port 1080, si nous voulons accéder sans ajouter de port, nous pouvons utiliser Nginx comme proxy inverse. Les amis qui ne connaissent pas Nginx peuvent lire "Ces merveilleuses utilisations de Nginx, vous ne devez pas le savoir ! " 》, ajoutez le fichier de configuration git.conf dans le dossier de configuration Nginx, le contenu est le suivant :

server {
    listen       80; # 同时支持HTTP
    server_name  git.macrozheng.com; #修改域名

    location / {
        proxy_pass   http://192.168.7.134:1080; # 设置代理服务访问地址
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
Copier après la connexion

Ensuite, nous pouvons accéder à Gitlab via le nom de domaine git.macrozheng.com, entrez le mot de passe du compte root : 12345678 pour vous connecter ;

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.

Téléchargez notre code d'application SpringBoot sur Gitlab, pour que Gitlab soit prêt ! Ce qu'il faut noter ici, c'est que si vous ne précisez pas le nom d'hôte au démarrage de Gitlab, l'adresse d'accès HTTP de votre projet sera l'ID du conteneur, et vous ne pourrez pas accéder au dépôt Git en utilisant cette adresse !

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.

Installer Gitlab Runner

Gitlab n'est qu'un entrepôt de code. Si vous souhaitez implémenter CI/CD, vous devez installer gitlab-runner qui est l'équivalent de l'exécuteur de tâches dans Gitlab. quand il doit exécuter des tâches.

Téléchargez d'abord l'image Docker de gitlab-runner et choisissez alpine-bleeding. Cette version est très compacte !

docker pull gitlab/gitlab-runner:alpine-bleeding
Copier après la connexion

Utilisez la commande suivante pour exécuter gitlab-runner ;

docker run --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/gitlab-runner:/etc/gitlab-runner \
-d gitlab/gitlab-runner:alpine-bleeding
Copier après la connexion

Si nous vérifions le journal du conteneur de gitlab-runner à ce moment, nous trouverons l'erreur suivante. Le fichier config.toml est introuvable. s'inquiéter de ce problème. Lorsque nous ajoutons gitlab- Lorsque le runner est enregistré sur Gitlab, ce fichier sera automatiquement généré

ERROR: Failed to load config stat /etc/gitlab-runner/config.toml: no such file or directory  builds=0
Copier après la connexion

Ensuite, nous devons enregistrer gitlab-runner sur Gitlab, ouvrir le projet->Paramètres-> Fonction CI/CD, et obtenez l'adresse et l'adresse nécessaires à l'enregistrement du jeton du coureur

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.

Ensuite, utilisez la commande suivante pour entrer à l'intérieur du conteneur gitlab-runner ; pour enregistrer le coureur ;

docker exec -it gitlab-runner /bin/bash
Copier après la connexion

Une interface interactive apparaîtra lors de l'inscription, vous invitant à saisir l'adresse d'enregistrement et le jeton, le type d'exécuteur et d'autres informations. L'exécuteur ssh peut exécuter à distance des commandes Linux. recommandé d'utiliser ceci!

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.Une fois l'enregistrement terminé, nous pouvons constater que le fichier config.toml a été généré avec le contenu suivant. Si vous souhaitez modifier la configuration du coureur à l'avenir, modifiez simplement ce fichier directement.

gitlab-runner register
Copier après la connexion

Dans les paramètres CI/CD de Gitlab, nous pouvons constater qu'un coureur a été enregistré avec succès !

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.Installer Maven

Le packaging du projet SpringBoot nécessite Maven, nous devons d'abord l'installer sur le serveur.

Téléchargez le package d'installation de Maven Linux, adresse de téléchargement : https://maven.apache.org/down...

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.Une fois le téléchargement terminé, utilisez la commande suivante pour le décompresser dans le répertoire spécifié ;

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "docker-runner"
  url = "http://192.168.7.134:1080/"
  token = "c2kpV6tX6woL8TMxzBUN"
  executor = "ssh"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.ssh]
    user = "root"
    password = "123456"
    host = "192.168.7.134"
    port = "22"
Copier après la connexion

Modifiez le fichier /etc/profile, ajoutez la configuration de la variable d'environnement :

cd /mydata
tar -zxvf apache-maven-3.8.1-bin.tar.gz
Copier après la connexion

Testez si l'installation a réussi en vérifiant la version de Maven.

export MAVEN_HOME=/mydata/apache-maven-3.8.1
export PATH=$PATH:$MAVEN_HOME/bin
Copier après la connexion
mvn -v
Copier après la connexion

Installer JDK

JRE est installé par défaut sur CentOS Pour utiliser Maven, vous devez installer JDK.

Téléchargez le JDK 8, adresse de téléchargement : https://mirrors.tuna.tsinghua...

Une fois le téléchargement terminé, extrayez le JDK dans le répertoire spécifié Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.

Maven home: /mydata/apache-maven-3.8.1
Java version: 1.8.0_292, vendor: AdoptOpenJDK, runtime: /mydata/java/jdk1.8/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
Copier après la connexion

Ajoutez la variable d'environnement JAVA_HOME dans le répertoire ; /etc/fichier de profil.

vi /etc/profile
# 在profile文件中添加
export JAVA_HOME=/mydata/java/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
# 使修改后的profile文件生效
. /etc/profile
Copier après la connexion

使用

一切准备就绪,接下来通过Gitlab的CI/CD功能就可以实现SpringBoot应用的自动化部署了!

首先在项目的根目录下添加.gitlab-ci.yml文件,定义了两个任务,一个任务会将应用代码打包成Jar包并复制到指定目录,另一个任务会通过运行脚本run.sh打包应用的Docker镜像并运行;

# 打包任务
build-job:
  stage: build
  # 指定标签,只有具有该标签的runner才会执行
  tags:
    - docker
  script:
    # 使用Maven打包
    - mvn clean package
    # 将jar包、Dockerfile、运行脚本复制到指定目录
    - cp target/mall-tiny-gitlab-1.0-SNAPSHOT.jar /mydata/build/mall-tiny-gitlab-1.0-SNAPSHOT.jar
    - cp Dockerfile /mydata/build/Dockerfile
    - cp run.sh /mydata/build/run.sh

# 部署任务
deploy-job:
  stage: deploy
  tags:
    - docker
  script:
    # 进入指定目录并执行运行脚本
    - cd /mydata/build
    - chmod +x run.sh
    - ./run.sh
Copier après la connexion

这里值得一提的是,默认情况下runner只会执行具有相同标签的Job,由于我们对Job和runner都设置了标签为docker,所以我们这里是可以执行的。如果你没有设置标签的话,需要在runner的编辑界面设置下让runner可以执行没有标签的Job;

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.

由于我们的gitlab-runner采用的是ssh的执行器,它会登录到我们指定的服务器,执行我们在.gitlab-ci.yml中定义的script命令,在此之前还会先从Git仓库中获取代码,所以我们还需修改下服务器上的host文件;

vim /etc/hosts
192.168.7.134 git.macrozheng.com
Copier après la connexion

接下来就是要把脚本提交到Git仓库上去,提交后会在Project->CI/CD->Pipelines中发现正在执行的任务;

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.

打开Pipeline的详情页面,可以发现我们定义的两个任务都已经执行成功了;

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.

打开Job的详情界面,我们可以看到任务执行过程中输出的日志信息;

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.

如果你想手动执行Pipeline,而不是提交触发的话,可以在Pipelines页面点击Run Pipeline按钮即可;

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.

运行成功后,可以通过如下地址访问项目:http://192.168.7.134:8088/swa...

Si vous nutilisez plus la fonction CI/CD de Gitlab, vous serez absent.

总结

如果你用Gitlab作为Git仓库的话,使用它的CI/CD功能来实现自动化部署确实很不错!安装一个轻量级gitlab-runner,编写简单的.gitlab-ci.yml脚本文件即可实现。其实我们之前以及介绍过很多种自动化部署方案,比如Jenkins、Gogs+Drone、Gitlab CI/CD,我们可以发现一个共同点,这些方案都离不开Linux命令。 所以说要想玩转自动化部署,还是得先玩转Linux命令!

相关视频教程推荐:Java视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment installer Deepseek Comment installer Deepseek Feb 19, 2025 pm 05:48 PM

Il existe de nombreuses façons d'installer Deepseek, notamment: Compiler à partir de Source (pour les développeurs expérimentés) en utilisant des packages précompilés (pour les utilisateurs de Windows) à l'aide de conteneurs Docker (pour le plus pratique, pas besoin de s'inquiéter de la compatibilité), quelle que soit la méthode que vous choisissez, veuillez lire Les documents officiels documentent soigneusement et les préparent pleinement à éviter des problèmes inutiles.

Résumé des FAQ pour une utilisation profonde Résumé des FAQ pour une utilisation profonde Feb 19, 2025 pm 03:45 PM

Deepseekai Tool User Guide et FAQ Deepseek est un puissant outil intelligent AI. FAQ: La différence entre les différentes méthodes d'accès: il n'y a pas de différence de fonction entre la version Web, la version de l'application et les appels API, et l'application n'est qu'un wrapper pour la version Web. Le déploiement local utilise un modèle de distillation, qui est légèrement inférieur à la version complète de Deepseek-R1, mais le modèle 32 bits a théoriquement une capacité de version complète de 90%. Qu'est-ce qu'une taverne? SillyTavern est une interface frontale qui nécessite d'appeler le modèle AI via l'API ou le olllama. Qu'est-ce que la limite de rupture

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Quels sont les outils d'IA ? Quels sont les outils d'IA ? Nov 29, 2024 am 11:11 AM

Les outils d'IA incluent : Doubao, ChatGPT, Gemini, BlenderBot, etc.

Java Made Simple : un guide du débutant sur la puissance de programmation Java Made Simple : un guide du débutant sur la puissance de programmation Oct 11, 2024 pm 06:30 PM

Java Made Simple : Guide du débutant sur la puissance de programmation Introduction Java est un langage de programmation puissant utilisé dans tout, des applications mobiles aux systèmes d'entreprise. Pour les débutants, la syntaxe de Java est simple et facile à comprendre, ce qui en fait un choix idéal pour apprendre la programmation. Syntaxe de base Java utilise un paradigme de programmation orienté objet basé sur les classes. Les classes sont des modèles qui organisent ensemble les données et les comportements associés. Voici un exemple simple de classe Java : publicclassPerson{privateStringname;privateintage;

Créer l'avenir : programmation Java pour les débutants absolus Créer l'avenir : programmation Java pour les débutants absolus Oct 13, 2024 pm 01:32 PM

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Quels sont les fonds de fiducie de cryptage en niveaux de gris? Quels sont les fonds de fiducie de cryptage en niveaux de gris? Mar 05, 2025 pm 12:33 PM

Investissement en niveaux de gris: le canal des investisseurs institutionnels pour entrer sur le marché des crypto-monnaies. La société a lancé plusieurs fiducies cryptographiques, ce qui a attiré une attention généralisée, mais l'impact de ces fonds sur les prix des jetons varie considérablement. Cet article présentera en détail certains des principaux fonds de fiducie de crypto de Graycale. Grayscale Major Crypto Trust Funds disponibles dans un investissement GrayScale GRAYS (fondée par DigitalCurrencyGroup en 2013) gère une variété de fonds fiduciaires d'actifs cryptographiques, fournissant des investisseurs institutionnels et des particuliers élevés avec des canaux d'investissement conformes. Ses principaux fonds comprennent: ZCash (Zec), Sol,

See all articles