Jenkins Blueocean 版本安装与配置

本文介绍如何部署Jenkins海洋版,解决普通版插件下载问题,并通过自定义镜像预装JDK和Maven。同时,文章还详细讲解了如何配置Jenkins进行Maven项目的构建,以及如何通过Jenkins构建并推送Docker镜像。

为什么要安装 Jenkins 海洋版 ?

  1. 普通的 Jenkins 在部署的时候,插件下不下来,但是在海洋版没有这个问题;
  2. blueocean 的页面更加人性化,流程的监控上看着让人舒服。

 

拉镜像

docker pull jenkinsci/blueocean

 

创建自定义的jenkinsci/blueocean镜像,以便后续自定义JDK、Maven等工具。

dockerfile_blueocean文件内容

启动镜像

注意:“\”后不要用空格,也可以不加--rm

docker run \

--name jenkinsci-blueocean \

-u root --rm  \

-d \

-p 7005:8080 \

-p 50000:50000 \

-v /home/docker/jenkins:/var/jenkins_home \

-v /var/run/docker.sock:/var/run/docker.sock \

jenkinsci/blueocean

 

-u root:以 root 权限启动,防止出现权限问题

-p 7005:8080:端口映射,服务器的 7005 端口映射容器的 8080 端口

-p 50000:50000:Jenkins代理默认通过TCP端口50000与Jenkins主机通信

-v /data/jenkins:/var/jenkins_home:把容器内的 Jenkins 目录挂载到服务器的 /data/jenkins 目录以防容器没了,数据也没了

-v /var/run/docker.sock:/var/run/docker.sock:保证容器内的 docker 与 服务器上 docker 的通讯

 

可能遇到的问题

若启动失败,报错java.net.UnknownHostException: updates.jenkins.io

可能跟宿主机的“网关服务”、hostname、hosts文件设置有关系,暂未找到解决方案。

Jenkins初始化

界面初始化

 

初始密码

命令

cat /data/jenkins/secrets/initialAdminPassword

 

接着安装插件,选择推荐的。

正在安装插件

创建第一个账号,root/xxxxxx

保存并完成

 

实例配置界面

安装完成,开始使用。

 

 

Jenkins主界面

安装 Maven Integration Plugin

Jenkins 中创建项目时没有Maven项目怎么办,需要安装maven Integration Plugin。安装过程如下:

点击“可选插件”  然后在右边的过滤输入框中输入搜索关键字: Maven Integration Plugin,搜索到了以后,点击直接安装。

 

安装中

安装完成,返回首页。

 

再新建项目时,就有了“Maven项目”选项。

安装 Jenkins Multiple SCMs Plugin 插件

首页 -->系统管理 --> 插件管理

可选插件 --> 搜索 “Multiple SCMs” --> 勾选 -->  直接安装

安装完成

新建Maven项目 --> 配置项目 --> 源码管理,果然可以配置多个Git源。

插件安装成功。再配置多个Git源就可以了。

Global Tool Configuration

先设置全局工具,比如jdk、maven等。

 

设置项,是Jenkins安装环境里的maven、jdk、git。

Maven配置

JDK

Git配置,配置是git.exe的地址,省去了exe的后缀。

 

Maven安装

 

配置完maven、jdk、git便可以保存。

 

注意:

如上配置Jenkins全局工具,有JDK、Maven等,需要在当前 Jenkins 容器中预先安装好,再实施配置。

自定义了jenkinsci/blueocean镜像,在镜像中安装了jdk、maven。

 

自定义jenkinsci/blueocean镜像的Dockerfile内容如下:

FROM jenkinsci/blueocean

MAINTAINER yanfh<240527831@qq.com>

WORKDIR /usr/local

ADD readme.txt .

 

ADD jdk-8u231-linux-x64.tar.gz .

ENV JAVA_HOME /usr/local/jdk1.8.0_231

ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

ADD apache-maven-3.6.3-bin.tar.gz .

ENV MVN_HOME /usr/local/apache-maven-3.6.3

ENV PATH $PATH:$JAVA_HOME/bin:$MVN_HOME/bin

Jenkins Gitlab配置

进入项目,进行配置。

 

配置界面

有 General、源码管理、构建触发器等多个配置选项卡。

 

目前只需要配置两个地方即可。1:源码管理;2:Build

先看源码管理配置

若没有Credentials 证书信息,添加即可。

 

单源配置

BUILD

在Jenkins workspace目录下,有项目列表。

Root POM 配置 pom.xml在Jenkins 项目下的相对路径。

例如:此时项目名称“springboot-hello”,直接配pom.xml即可。

Jenkins立即构建

在项目主界面,点击“立即构建”即可。

查看日志

点击控制台输入,可以查看实时日志。

 

构建成功

 

在jenkins workspace目录里,可以查看到target里的jar包。

target地址如下(注意是Jenkins项目名称,不是IED里工程名称):

workspace/Jenkins项目名称/target

Java -jar xxx.jar启动,可以访问。构建成功。

Jenkins 构建docker 镜像

如上,Jenkins 基于 Gitlab 服务,可以成功执行 maven 编辑,现在以编译新生成的 jar 包,生成新的 docker image ,并推送到私库上。

配置 Post Steps

首先要配置 Post Steps,Post Steps 即为maven 构建之后的操作。

添加Post Steps 为“执行shell”

准备填写shell

Shell内容展示

查看下当前 springboot-hello 例子的shell脚本,把shell分成三个部分,分别展示。

第一部分,声明变量

第二部分,构建镜像

第三部分,推送镜像

完整shell内容如下:

#!/bin/bash

echo '前提:当前jenkins 容器能访问宿主机的docker服务...'

echo 'build image starting...-'

 

## 第一部分

REGISTRY_URL=xxx.xxx.xxx.xxx:5001

jar_name=hello-demo-0.0.1-SNAPSHOT

jenkins_item=hello-demo

jenkins_path=/var/jenkins_home/workspace

 

## 第二部分

cp ${jenkins_path}/${jenkins_item}/target/${jar_name}.jar /usr/local

tee /usr/local/Dockerfile <<-'EOF'

FROM java:8

WORKDIR /usr/local

COPY hello-demo-0.0.1-SNAPSHOT.jar /usr/local/hello.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java","-jar","/usr/local/hello.jar"]

EOF

 

## 第三部分

image_tag=${REGISTRY_URL}/yan/springboot-hello-by-tee

docker build -t ${image_tag} /usr/local

docker login --username=admin --password=xxx ${REGISTRY_URL}

docker push ${image_tag}

docker logout

echo 'build image finished...'

查看Jenkins日志

点击“立即构建”,观察日志,先 maven package,再构建docker image。

镜像构建成功

推送成功

harbor私仓查看镜像

访问harbor私仓地址,可见名为yan/springboot-hello-by-tee的镜像

拉镜像测试

拉取镜像、启动服务,就不赘述了。直接查看

注意:注意:注意:

两个关键点,请特别注意一下。

第一点:当前 Jenkins 容器,能够正常访问宿主机的 docker 服务。

第二点:当前 Jenkins 容器,能够正常执行 tee 命令。

 

见如上步骤

  1. Jenkins 安装、安装插件
  2. Jenkins 全局工具配置
  3. Jenkins maven 构建 Gitlib 源代码
  4. Jenkins 构建 docker 镜像
  5. Jenkins 推送 docker 镜像

全部成功!!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值