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