jenkins+gitlab+harbor+maven自动化容器部署

一、gitlab安装配置

1.1、安装

由于比较懒啊!这里就直接使用docker安装了啊!
没事先更新一个yum源:yum update -y
整一个gitlab镜像:docker pull gitlab/gitlab-ce
运行一个gitlab容器:docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --name gitlab --restart always -v /home/local/gitlab_docker/gitlab:/etc/gitlab -v /home/local/gitlab_docker/logs:/var/log/gitlab -v /home/local/gitlab_docker/data:/var/opt/gitlab gitlab/gitlab-ce
确认容器是否启动成功:docker ps
在这里插入图片描述
参数简单说明:
要详细说明的自己去看官方文档啊!
-d:后台运行

-p:端口映射,宿主机端口:容器端口

–name: 给将要运行的容器命名

–restart always:docker启动的时候,也自行启动

-v:挂载目录,宿主机目录:容器目录

gitlab/gitlab-ce:要运行的镜像

1.2、修改gitlab.rb配置文件

vim /home/local/gitlab_docker/gitlab/gitlab.rb

修改成下面这样就好了呀!
在这里插入图片描述

1.3、重启配置

链接容器重启配置:docker exec -it gitlab gitlab-ctl reconfigure
这里需要的时间比较久,你忍耐一下
启动成功了,网页验证一下就好了
在这里插入图片描述

1.4、登录gitlab

查看root初始密码:docker exec -it gitlab cat /etc/gitlab/initial_root_password
在这里插入图片描述
好了用这个临时密码登录上后就自己去改密码吧!

1.5、修改clone端口

有没有发现一个小问题呀!当我们去clone的时候ssh的端口是对滴,但是http的端口不对,那应该怎么办了,这个简单啊!简单修改下配置文件就行了啊!

docker exec -it gitlab vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

在这里插入图片描述
重启gitlab:docker exec -it gitlab gitlab-ctl restart
OK,现在再去clone的话,http的路径也对了

二、安装harbor

大家没事可以参考我另外一篇文章啊!安装harbor
这里也简单安装一下吧!

2.1、安装docker-compose

安装:curl -L "https://github.com/docker/compose/releases/download/v2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
其实这里是三个小步骤啊!一是下载2.28.1版本、二是拷贝到/usr/local/bin/、三是重命名为docker-compose
赋权:chmod +x /usr/local/bin/docker-compose
验证:docker-compose -v
在这里插入图片描述

2.2、安装harbor

切换目录:cd /home/local/
下载安装包:wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz
解压:tar xzvf harbor-offline-installer-v2.10.3.tgz
拷贝配置文件:cp /home/local/harbor/harbor.yml.tmpl /home/local/harbor/harbor.yml
修改配置文件:vim /home/local/harbor/harbor.yml
在这里插入图片描述
安装harbor:/home/local/harbor/install.sh
启动harbor:docker-compose -f /home/local/harbor/docker-compose.yml restart

2.3、配置harbor

docker配置harbor私服:vim /etc/docker/daemon.json
在这里插入图片描述
重启生效:systemctl daemon-reload && systemctl restart docker&&docker-compose -f /home/local/harbor/docker-compose.yml restart
登录测试:docker login -u admin -p Harbor12345 http://10.10.30.34:8070
打标签:docker tag tomcat:latest 10.10.30.34:8070/test_public/image_test:v1
上传测试:docker push 10.10.30.34:8070/test_public/image_test:v1

三、jenkins

3.1、安装jenkins

参考官方文档
下载jenkins源:wget https://pkg.jenkins.io/redhat/jenkins.repo -O /etc/yum.repos.d/jenkins.repo --no-check-certificate
导入key:rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
安装jdk: yum install fontconfig java-17-openjdk -y
若jdk为安装成功则使用如下方案:
下载jdk:wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
安装jdk:yum -y install ./jdk-17_linux-x64_bin.rpm
修改环境变量:vim /etc/profile

export JAVA_HOME=/usr/java/jdk-17
export PATH=$JAVA_HOME/bin:$PATH

环境变量生效:source /etc/profile
安装jenkins: yum install jenkins -y

3.2、启动jenkins

开机自启:systemctl enable jenkins
启动jenkins:systemctl start jenkins

3.3、安装插件

Dashboard–>Manage Jenkins–>Plugins–Available plugins
选择安装一个Git Parameter给大家示范一下,其余的大家按需安装啊!
在这里插入图片描述
点击安装等待安装完即可啊!重启才能生效哦!我这个人比较懒,重启就是直接http://10.10.30.34:8080/restart

四、安装maven

切换目录:cd /home/local/
下载安装包:wget https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz
解压:tar xzvf apache-maven-3.9.8-bin.tar.gz
修改配置:vim apache-maven-3.9.8/conf/settings.xml
http://maven.aliyun.com/nexus/content/groups/public/
在这里插入图片描述
配置环境变量:vim /etc/profile

export MVN_HOME=/home/local/apache-maven-3.9.8/
export PATH=$MVN_HOME/bin:$PATH

环境变量生效:source /etc/profile

五、Jenkins配置使用

5.1、git上传到gitlab

为了方便测试呀!我在网上随便整理个开源的Java项目上传到gitlab,这个网上一大把,大家随意去搜啊!
初始化:git init
添加所有文件到本地仓库:git add .
配置邮箱:git config --global user.email "admin@example.com"
配置用户:git config --global user.name "root"
提交本地仓库:git commit -m "Initial commit"
添加GitLab仓库地址作为远程仓库:git remote add origin http://10.10.30.34:8090/root/test.git
推送代码到GitLab:git push -u origin master

5.2、jenkins工具配置

Dashboard–>Manage Jenkins–>System Configuration–>Tools
maven配置
在这里插入图片描述
JDK安装
在这里插入图片描述

git安装
在这里插入图片描述

5.3、item配置

新建item
在这里插入图片描述
配置Discard old builds
自己根据需求来啊!
在这里插入图片描述
配置This project is parameterized
新增String Parameter
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/07dd58aa4b03495c93382eff73c7a0fb.png
新增Git Parameter
在这里插入图片描述

编写脚本
流水线语法生产拉取gitlab代码
在这里插入图片描述

增加连接凭证
在这里插入图片描述
点击生成流水线脚本
在这里插入图片描述
流水线语法生产harbor验证
在这里插入图片描述

在这里插入图片描述
Pipeline script

pipeline {agent anystages {stage('pull source') {steps {checkout scmGit(branches: [[name: '*/${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: 'fe750087-98f6-4d98-b62d-3e28e826c18f', url: 'http://10.10.30.34:8090/root/test.git']])}}stage('maven') {steps {sh ''' /home/local/apache-maven-3.9.8/bin/mvn clean package -DskipTests '''}}stage('docker_harbor') {steps {withCredentials([usernamePassword(credentialsId: '8e1d6054-68b1-4e85-b5a2-a444b2a1b5e6', passwordVariable: 'password', usernameVariable: 'username')]) {sh ''' docker build -f test.yml -t 10.10.30.34:8070/test_public/image_test:${Tag}  . '''sh ''' echo ${password} | docker login  -u ${username}   --password-stdin http://10.10.30.34:8070 '''sh ''' docker push 10.10.30.34:8070/test_public/image_test:${Tag} '''sh ''' docker images | grep 'image_test'| awk '{print $3}'|xargs docker rmi '''
}}}}}

5.3、构建

在这里插入图片描述

5.4、Build with Parameters 可能遇到的问题

maven内存不足

dd if=/dev/zero of=/swapfile bs=1M count=3190
mkswap /swapfile
swapon /swapfile

docker.sock: connect: permission denied
本人比较懒,直接777权限整上

chmod 777 /var/run/docker.sock

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/380071.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十七、【机器学习】【非监督学习】- K-均值 (K-Means)

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

[论文笔记] pai-megatron-patch Qwen2-CT 长文本rope改yarn

更改: # Copyright (c) 2024 Alibaba PAI and Nvidia Megatron-LM Team. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License a…

MongoDB常用命令大全,概述、备份恢复

文章目录 一、MongoDB简介二、服务启动停止、连接三、数据库相关四、集合操作五、文档操作六、数据备份与恢复/导入导出数据6.1 mongodump备份数据库6.2 mongorestore还原数据库6.3 mongoexport导出表 或 表中部分字段6.4 mongoimport导入表 或 表中部分字段 七、其他常用命令八…

怎么关闭 Windows 安全中心,手动关闭 Windows Defender 教程

Windows 安全中心(也称为 Windows Defender Security Center)是微软 Windows 操作系统内置的安全管理工具,用于监控和控制病毒防护、防火墙、应用和浏览器保护等安全功能。然而,在某些情况下,用户可能需要关闭 Windows…

深层神经网络示例

维度说明: A[L]、Z[L]:(本层神经元个数、样本数) W[L]:(本层神经元个数、上层神经元个数) b[L]:(本层神经元个数、1) dZ[L]:dA[L] * g’A&#xf…

【BUG】已解决:ModuleNotFoundError: No module named ‘PIL‘

已解决:ModuleNotFoundError: No module named ‘PIL‘ 目录 已解决:ModuleNotFoundError: No module named ‘PIL‘ 【常见模块错误】 错误原因: 解决办法: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我…

时序数据库如何选型?详细指标总结!

工业物联网场景,如何判断什么才是好的时序数据库? 工业物联网将机器设备、控制系统与信息系统、业务过程连接起来,利用海量数据进行分析决策,是智能制造的基础设施,并影响整个工业价值链。工业物联网机器设备感知形成了…

《Techporters架构搭建》-Day02 集成Mybatis-plus

集成Mybatis-plus Mybatis-plus集成Mybatis-plus步骤小结 Mybatis-plus Mybatis-plus官网 MyBatisPlus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它引入了一些新的特性&…

CSRF+XSS组合攻击实战

目录 0x01安装靶场 0x02分析功能点的请求接口,构造恶意请求 0x03寻找xss漏洞 0x01安装靶场 下载源码,解压到网站根目录 1.修改数据库配置文件 打开源码,进入到include目录下,打开数据库配置文件database.inc.php 将数据库的…

Template_C++

C模板 C提供了function template. function template:实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用的函数就称为函数模版。 是不是可以这样理解,函数模版就是给了一种功能&…

Keil开发IDE

Keil开发IDE 简述Keil C51Keil ARMMDK DFP安装 简述 Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。Keil公…

WebRTC音视频-环境搭建

目录 期望效果 1:虚拟机和系统安装 2:WebRTC客户端环境搭建 2.1:VScode安装 2.2:MobaXterm安装 3:WebRTC服务器环境搭建 3.1:安装openssh服务器 3.2:安装Node.js 3.3:coturn穿透和转发服务器 3.3.1&a…

全国数据智能与智慧政务行业产教融合共同体学术年会暨广东行政职业学院(广东青年职业学院)第一届“求是论坛”成功举办

为进一步深化现代职业教育体系建设理论研究,丰富行业产教融合共同体实践探索,7月13日,全国数据智能与智慧政务行业产教融合共同体学术年会暨广东行政职业学院(广东青年职业学院)第一届“求是论坛”在广东行政职业学院&…

【iOS】static、extern、const、auto关键字以及联合使用

目录 前言extern关键字static关键字const关键字 联合使用static和externstatic和constextern和const auto关键字 先了解一下静态变量所在的全局/静态区的特点:【iOS】内存五大分区 前言 上面提到的全局/静态区中存放的是全局变量或静态变量: 全局变量…

LabVIEW软件开发的雷区在哪里?

在LabVIEW软件开发中,有几个需要注意的雷区,以避免常见的错误和提高开发效率: 1. 不良的代码结构 雷区:混乱的代码结构和不清晰的程序逻辑。 后果:导致难以维护和调试的代码,增加了错误和故障的风险。 …

AI算法18-最小角回归算法Least Angle Regression | LARS

​​​ 最小角回归算法简介 最小角回归(Least Angle Regression, LAR)是一种用于回归分析的统计方法,它在某些方面类似于最小二乘回归,但提供了一些额外的优点。最小角回归由Bradley Efron等人提出,主要用于处理具有…

Leetcode双指针法应用

1.双指针法 文章目录 1.双指针法1.1什么是双指针法?1.2解题思路1.3扩展 1.1什么是双指针法? 双指针算法是一种在数组或序列上操作的技巧,实际上是对暴力枚举算法的一种优化,通常涉及到两个索引(或指针)从两…

【D3.js in Action 3 精译_020】2.6 用 D3 设置与修改元素样式 + 名人专访(Nadieh Bremer)+ 2.7 本章小结

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介(已完结) 1.1 何为 D3.js?1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践(上)1.3 数据可视化最佳实践(下)1.4 本章小结 第二章…

Chromium CI/CD 之Jenkins实用指南2024-在Windows节点上创建任务(九)

1. 引言 在现代软件开发流程中,持续集成(CI)和持续交付(CD)已成为确保代码质量和加速发布周期的关键实践。Jenkins作为一款广泛应用的开源自动化服务器,通过其强大的插件生态系统和灵活的配置选项&#xf…

Spring Boot项目中使用MyBatis Generator (MBG) 自动生成Mapper文件

Spring Boot项目中使用MyBatis Generator (MBG) 自动生成Mapper文件可以很大程度上减少编码。本文着重介绍如何在实战中使用MGB自动生成Mapper文件 1. 添加MyBatis Generator依赖 在pom.xml中添加必要的依赖 <dependency><groupId>org.mybatis.spring.boot</…