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需要在同一级目录下。

相关推荐
Theodore_10221 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
冰帝海岸2 小时前
01-spring security认证笔记
java·笔记·spring
世间万物皆对象3 小时前
Spring Boot核心概念:日志管理
java·spring boot·单元测试
没书读了3 小时前
ssm框架-spring-spring声明式事务
java·数据库·spring
小二·3 小时前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic4 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
懒洋洋大魔王4 小时前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康4 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神4 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
朝九晚五ฺ5 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习