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配置文件

bash 复制代码
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的端口不对,那应该怎么办了,这个简单啊!简单修改下配置文件就行了啊!

bash 复制代码
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

bash 复制代码
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

bash 复制代码
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

bash 复制代码
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内存不足

bash 复制代码
dd if=/dev/zero of=/swapfile bs=1M count=3190
mkswap /swapfile
swapon /swapfile

docker.sock: connect: permission denied

本人比较懒,直接777权限整上

bash 复制代码
chmod 777 /var/run/docker.sock
相关推荐
JunLan~6 小时前
Rocky Linux 系统安装/部署 Docker
linux·docker·容器
海岛日记8 小时前
centos一键卸载docker脚本
linux·docker·centos
让生命变得有价值8 小时前
使用 helm 部署 gitlab
gitlab·helm
Kkooe8 小时前
GitLab|GitLab报错:PG::ConnectionBad: could not connect to server...
gitlab
小袁搬码9 小时前
Windows中指定路径安装DockerDesktop
windows·docker·容器·docker desktop
qq_3129201110 小时前
docker 部署 kvm 图形化管理工具 WebVirtMgr
运维·docker·容器
踏雪Vernon10 小时前
[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式
linux·docker·容器·harmonyos
条纹布鲁斯11 小时前
dockerdsktop修改安装路径/k8s部署wordpress和ubuntu
docker·kubernetes
工业3D_大熊12 小时前
3D可视化引擎HOOPS Luminate场景图详解:形状的创建、销毁与管理
java·c++·3d·docker·c#·制造·数据可视化
szc176712 小时前
docker 相关命令
java·docker·jenkins