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

news2024/11/14 14:01:33

一、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 any

    stages {
        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.coloradmin.cn/o/1936380.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装 Maven

安装 Maven 的步骤: 1. 访问 Maven 官方网站: https://maven.apache.org/download.cgi 2. 下载 Maven 的二进制文件 3. 解压下载的文件到希望安装的目录 4. 将 Maven 的 bin 目录添加到您的系统环境变量 PATH 中(配置环境变量) 这个步骤可…

Ubuntu24.04 NFS 服务配置

1、NFS 介绍 NFS 是 Network FileSystem 的缩写,顾名思义就是网络文件存储系统,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。通过 NFS,我们本地 NFS 的客户端应用可以透明地读写位于服务端 NFS 服务器上的文件,就像访问本…

el-menu弹出菜单样式不生效

1. 使用 ruoyi 项目时出现的问题。 <template><el-menu:default-active"activeMenu":collapse"false":unique-opened"true"class"container":collapse-transition"true"mode"horizontal"><sideba…

CH01_WPF概述

第1章&#xff1a;WPF概述 本章目标 了解Windows图形演化了解WPF高级API了解分辨率无关性概念了解WPF体系结构了解WPF 4.5 WPF概述 ​ 欢迎使用 Windows Presentation Foundation (WPF) 桌面指南&#xff0c;这是一个与分辨率无关的 UI 框架&#xff0c;使用基于矢量的呈现引…

核函数支持向量机(Kernel SVM)

核函数支持向量机&#xff08;Kernel SVM&#xff09;是一种非常强大的分类器&#xff0c;能够在非线性数据集上实现良好的分类效果。以下是关于核函数支持向量机的详细数学模型理论知识推导、实施步骤与参数解读&#xff0c;以及两个多维数据实例&#xff08;一个未优化模型&a…

【iOS】—— isMemberOfClass isKindOfClass以及源码

【iOS】—— isMemberOfClass & isKindOfClass以及源码 isa指针示例源码解析&#xff1a;isKindOfClass&#xff1a;源码解析&#xff08;实例方法和类方法&#xff09;isMemberOfClass&#xff1a;源码解析&#xff08;实例方法和类方法&#xff09;源码分析总结&#xff…

MF173:将多个工作表转换成PDF文件

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

【C++】16. set 和 map

在之前的博客中&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque等&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面存储的是元素本身。 我们这篇博客的内容是关联式容器&#xff…

负重3Kg垂起固定翼无人机技术详解

一、基本参数 负重3Kg垂起固定翼无人机是一款具备强大负载能力和长航时特性的无人机。其基本参数如下&#xff1a; - 最大负载&#xff1a;3Kg - 最大续航时间&#xff1a;203分钟&#xff08;示例数据&#xff0c;实际续航时间可能根据任务负载、环境条件等因素有所不同&…

敲详细的springframework-amqp-rabbit源码解析

看源码时将RabbitMQ的springframework-amqp-rabbit和spring-rabbit的一套区分开&#xff0c;springboot是基于RabbitMQ的Java客户端建立了简便易用的框架。 springboot的框架下相对更多地使用消费者Consumer和监听器Listener的概念&#xff0c;这两个概念不注意区分容易混淆。…

【electron6】浏览器实时播放PCM数据

pcm介绍&#xff1a;PCM&#xff08;Puls Code Modulation&#xff09;全称脉码调制录音&#xff0c;PCM录音就是将声音的模拟信号表示成0,1标识的数字信号&#xff0c;未经任何编码和压缩处理&#xff0c;所以可以认为PCM是未经压缩的音频原始格式。PCM格式文件中不包含头部信…

FPGA文档阅读

FPGA的文档没有相应的基础还真不容易看懂&#xff0c;下面是B站上对FPGA文档的解读(本文非对文档解读&#xff0c;只是为个人记录第三期&#xff1a;CycloneIV E最小系统板设计&#xff08;一&#xff09;从Datasheet上获取FPGA的基本参数_哔哩哔哩_bilibili 电源部份 核心电…

elasticsearch, kibana, 6.8.18 版本下的创建索引,指定timestamp,java CRUD,maven版本等

ELK 这一套的版本更迭很快&#xff0c; 而且es常有不兼容的东西出现&#xff0c; 经常是搜一篇文章&#xff0c;看似能用&#xff0c;拿到我这边就不能用了。 很是烦恼。 我这边的ELK版本目前是 6.8.18&#xff0c;这次的操作记录一下。 &#xff08;涉密内容略有删改&#xf…

SQL语句——DDL数据定义语言

1.sql语言不区分大小写 2._&#xff08;下划线&#xff09;进行名字的分割&#xff0c;不适用驼峰命名 3.; 语句sql结尾处加一个;来表示结束 4.一般关键词建议用大写 5.所有名称不能用中文 1.创建数据库 CREATE DATABASE [IF NOT EXISTS] 库名 -- 库 #创建库 #create databa…

计算机网络序章

计算机网络学习什么&#xff1f; 下列举例由用户使用计算机角度去理解 首先&#xff0c;计算机网络是通过路由等方式去获取我们希望的数据用户可以在APP中去进行方便的操作去获取数据。每个应用都有自己的端口去确定每次来的数据是否是自己需要的数据应该应该传到哪里&#x…

COD论文笔记 Deep Gradient Learning for Efficient Camouflaged 2022

动机 这篇论文的动机在于解决伪装目标检测(COD)中的一个关键问题&#xff1a;在复杂背景下&#xff0c;伪装目标与背景的边界模糊&#xff0c;使得检测变得极其困难。现有的方法&#xff0c;如基于边界或不确定性的模型&#xff0c;通常仅响应于伪装目标的稀疏边缘&#xff0c…

oceanbase架构、功能模块、数据存储、特性、sql流转层等概念详解

一、架构图 OceanBase 数据库采用无共享&#xff08;Shared-Nothing&#xff09;分布式集群架构&#xff0c;各个节点之间完全对等&#xff0c;每个节点都有自己的 SQL 引擎、存储引擎、事务引擎&#xff0c;运行在普通 PC 服务器组成的集群之上&#xff0c;具备高可扩展性、高…

澎湃算力 玩转AI 华为昇腾AI开发板——香橙派OriengePi AiPro边缘计算案例评测

澎湃算力 玩转AI 华为昇腾AI开发板 香橙派OriengePi AiPro 边缘计算案例评测 人工智能&#xff08;AI&#xff09;技术正以前所未有的速度改变着我们的生活、工作乃至整个社会的面貌。作为推动这一变革的关键力量&#xff0c;边缘计算与AI技术的深度融合正成为行业发展的新趋势…

秒懂C++之类与对象(下)

目录 一.static成员 测试&#xff1a; 二.explicit关键字 三.友元&#xff08;少用&#xff09; 友元函数&#xff1a; 友元类&#xff1a; 四.内部类&#xff08;少用&#xff09; 五.&#xff08;扩展&#xff09;编译器的优化 一.static成员 测试&#xff1a; 实现一…

【分布式事务】怎么解决分布式场景下数据一致性问题

分布式事务的由来 拿充值订单举个栗子吧&#xff0c;假设&#xff1a;原本订单模块和账户模块是放在一起的&#xff0c;现在需要做服务拆分&#xff0c;拆分成订单服务&#xff0c;账户余额服务。原本收到充值回调后&#xff0c;可以将修改订单状态和扣减余额放在一个mysql事务…