当前位置: 首页 > article >正文

jenkins搭建及流水线配置

1.安装docker

curl https://mirrors.aliyun.com/repo/Centos-7.repo >> CentOS-Base-Aliyun.repo

mv CentOS-Base-Aliyun.repo /etc/yum.repos.d/

yum -y install yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum clean 

yum makecache fast

yum -y install docker-ce

systemctl start docker

在这台机器上也需要修改/usr/lib/systemd/system/docker.service
这个是harbor的ip+端口
在这里插入图片描述
配置完成后
重启docker

root@localhost]# systemctl daemon-reload
[root@localhost]# systemctl restart docker

2.安装maven

在官网上下载一个maven上传到服务器上
https://maven.apache.org/download.cgi
下载完毕后解压
tar zxvf apache-maven-3.9.9-bin.tar.gz
解压完毕后移动
mv apache-maven-3.9.0 /usr/local/maven
3.下载git
yum install -y git

4.安装jdk11
首先下载对于的jdk
然后进行解压
配置jdk环境变量

vi /etc/profile

JAVA_HOME=/usr/local/jdk-11.0.24
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH

执行source  /etc/profile生效配置

5.安装jenkins

 docker run -d --name jenkins6 --restart always \
--user root -p 10204:8080 -p 50000:50000 \
-v /data2/devOps/jenkins/data:/var/jenkins_home \
-v /usr/local/maven:/usr/local/maven \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-v /usr/local/jdk-11.0.24:/usr/local/jdk-11.0.24 \
jenkins/jenkins

进入后使用docker logs jenkins查看初始密码
然后选择推荐的插件
在这里插入图片描述
在这里插入图片描述
首先进入jenkins之后需要现在“Maven”、“GitLab”、“Jdk”、“SSH”、“Git”的相关插件

6.登录上jenkins配置截图:

6.1系统管理-全局工具配置
在这里插入图片描述
配置具体工具
Maven配置:
在这里插入图片描述
这里的路径都是jenkins镜像启动时配置的映射路径的地址

jdk安装:
在这里插入图片描述
这里的路径都是jenkins镜像启动时配置的映射路径的地址

配置git
在这里插入图片描述
配置maven
在这里插入图片描述
这里的路径都是jenkins镜像启动时配置的映射路径的地址

配置完成后点击应用和保存

6.2 配置系统配置
在这里插入图片描述
配置ssh
在这里插入图片描述
这个是jenkins服务器的ip和端口 需要添加的是服务器的登录用户名和密码
点击添加即可添加

部分可参考
参考文章连接:
https://blog.csdn.net/weixin_44100795/article/details/140373925
在这里插入图片描述
配置gitlab
在这里插入图片描述
这里需要的是gitlab的token具体方法参考
https://blog.csdn.net/weixin_40918067/article/details/116894558

配置
系统配置
Jenkins连接gitlab需要配置access token,所以先在gitlab上生成access token,后将该token配置在Jenkins上。(access token只需配置一次,后续每个工程直接使用即可)

. 获取连接token
1)登陆gitlab,在用户头像下拉图标,选择“Setting”
在这里插入图片描述
在这里插入图片描述
点击“Create personal access token”,生成access token,记录下来。

然后再jenkins中添加此凭证用于系统管理-系统配置

在这里插入图片描述
在这里插入图片描述
然后点击应用和保存

7.构建项目
点击新建任务
在这里插入图片描述
选择新建maven项目
在这里插入图片描述
配置源码管理
在这里插入图片描述
在这里插入图片描述
这里配置的路径是git项目的路径,认证是git的登录用户名和密码,没有配置的话可以点击添加配置一个。
指定分支是指定对那个分支进行触发可以配置多个。
然后点击报错

点击立即构建可进行打镜像

用虚拟机的话需要配置一下桥接模式,这样别人就能访问了。

以上是手动构建镜像。
下面是结合上面的配置增加的自动提交代码后触发流水线的操作。

如果想要自动一提交git就会触发那就看下面的步骤:、

以管理员身份登录Gitlab,进入adminarea(首页顶层一行有个小扳手图标)点击进入,接着左侧菜单栏---->settings(设置)下一级---->network(网络)---->outbound requests expend(外发请求)前面打勾(□ Allow requests to the local network from web hooks and services-允许Webhook和服务对本地网络的请求)即可
在这里插入图片描述
点击进入git里面的项目
在这里插入图片描述
点击下面的操作
在这里插入图片描述
创建一个webhooks配置
在这里插入图片描述
在这里插入图片描述
URL和token取的就是下面红框中的url和token
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Java服务相关代码配置如下:
首先编写一个dockerfile文件

FROM openjdk:8-jdk

# 设置工作目录
WORKDIR /app

# 将 JAR 文件从本地目录复制到容器的工作目录
COPY target/jenkins-images-jar.jar /app/jenkins-images-jar.jar

# 运行 JAR 文件
ENTRYPOINT ["java", "-jar", "/app/jenkins-images-jar.jar"]

pom.xm配置如下:

<build>
    <!--这里指定 package 的 jar 包名称-->
    <finalName>jenkins-images-jar</finalName>
    <plugins>
      <!-- 这里是创建项目时就带上的 SpringBoot 插件 -->
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>

      <!-- Dockerfile maven plugin -->
      <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>dockerfile-maven-plugin</artifactId>
        <version>1.4.10</version>
        <!--将插件绑定在某个phase执行-->
        <!-- 镜像构建完毕之后自动推送到仓库 -->
        <executions>
          <execution>
            <id>default</id>
            <phase>package</phase>
            <goals>
              <goal>build</goal>
              <goal>push</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <username>xiaozeng</username>    <!--   docker私有仓库用户名,已登录则不需要 -->
          <password>aaaaaaaa</password>    <!--   docker私有仓库密码,已登录则不需要   -->
          <repository>192.168.1.129:9001/abcd/${project.build.finalName}</repository>
          <tag>${project.version}</tag>
          <buildArgs>
            <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
          </buildArgs>
        </configuration>

      </plugin>
    </plugins>
  </build>

其他的pom配置就是自己配置就好,这里最主要的是dockerfile和pom需要在同一级目录下。


http://www.kler.cn/a/371845.html

相关文章:

  • AXI接口的实现逻辑和底层原理,在FPGA中如何实现AXI接口,一篇文章足以搞明白!!!
  • 在 Elasticsearch 中顺利管理季节性时间变化
  • 数据分析师入门: 数据分析可视化入门知识点
  • 微信小程序 - 动画(Animation)执行过程 / 实现过程 / 实现方式
  • Python 深度学习简单介绍
  • 【日志】网络传输协议TCP/UDP/HTTP // unity泛型类单例模式
  • 求助帖:ubuntu22.10 auto install user-data配置了为何还需要选择语言键盘(如何全自动)
  • python通过translate库实现中英文翻译
  • 【libGL error】Autodl云服务器配置ACT的conda虚拟环境生成训练数据时,遇到了libGL相关错误,涉及swrast_dri.so
  • 数据采集(全量采集和增量采集)
  • 三方接口调用设计方案
  • 3. STM32之TIM实验--输出比较(PWM输出,电机,四轴飞行器,智能车,机器人)--(实验1:PWM驱动LED呼吸灯)
  • sparksql建临时表的几种方式
  • Java | Leetcode Java题解之第513题找树左下角的值
  • 数据结构 ——— 二叉树的概念及结构
  • 联动香港、成都、武汉三所高校!“2024 深圳国际金融科技大赛”校园行圆满结束
  • MySql基础34题写题记录(21-29)
  • 【AI】numpy_pandas_matplotlib_sklearn合集
  • macOS Sonoma 14.7.1 (23H222) Boot ISO 原版可引导镜像下载
  • 没有对象来和我手撕红黑树吧
  • 安装git-lfs发生报错Could not find Git; can not register Git LFS.解决方案
  • Milvus - 内存索引类型详解
  • 中阳金融智能量化交易系统的创新与未来发展
  • 出海要深潜,中国手机闯关全球化有了新标杆
  • 网络安全包含哪些方面?如何加强网络安全建设?
  • 函数练习python