基于Docker平台的Jenkins安装与Blue Ocean使用入门(1)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 基于Docker平台的Jenkins安装与Blue Ocean使用入门(1)

环境介绍:

CentOS 7.5
Docker 19.03.8
Jdk 1.8.0
Git 2.20.4

注意:


 如果将Jenkins作为Docker 容器运行,安装JDK跟Git不是必需的。


Docker安装教程:


https://blog.csdn.net/qq_44895681/article/details/105540702


在Docker中下载并运行Jenkins


 建议使用的Docker映像是jenkinsci/blueocean image(来自 the Docker Hub repository)。 该镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件。

[root@localhost ~]# docker search jenkins
NAME                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
jenkins                                Official Jenkins Docker image                   4758                [OK]                
jenkins/jenkins                        The leading open source automation server       2021                                    
jenkinsci/blueocean     //推荐               https://jenkins.io/projects/blueocean           512                                     
jenkinsci/jenkins                      Jenkins Continuous Integration and Delivery …   382    
[root@localhost ~]# docker pull jenkinsci/blueocean      //下载镜像
Using default tag: latest
latest: Pulling from jenkinsci/blueocean
e7c96db7181b: Pull complete
...
[root@localhost ~]# docker images
REPOSITORY                      TAG                      IMAGE ID            CREATED             SIZE
jenkinsci/blueocean             latest                   c522b7f778ef        21 hours ago        569MB           
[root@localhost ~]# docker run -itd -p 8080:8080 jenkinsci/blueocean      
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
ca1e1c655590        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp, 50000/tcp   silly_wilbur

 映射(例如“发布”)jenkinsci/blueocean 容器的端口8080到主机上的端口8080。第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。


访问Jenkins/blueocean Docker容器


 通过终端/命令提示符访问docker exec ,则可以添加一个选项 --name jenkins-blueocean,这会为 jenkinsci/blueocean 容器命名为 "jenkins-blueocean" 。这意味着你可以使用如下命令访问容器(通过单独的终端/命令提示符窗口) :


docker exec -it jenkins-blueocean /bin/bash

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
ca1e1c655590        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp, 50000/tcp   silly_wilbur 
[root@localhost ~]# docker exec -it ca1e1c65 /bin/bash
         //若docker run没有使用--name,也可用容器运行ID访问容器
bash-4.4$ java -version       //容器内java环境版本
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (IcedTea 3.12.0) (Alpine 8.212.04-r0)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
bash-4.4$ git --version      //容器内git版本
git version 2.20.4
bash-4.4$ netstat -antulp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:50000           0.0.0.0:*               LISTEN      6/java
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      6/java

访问Jenkins Docker容器控制台日志


 您可能需要访问Jenkins控制台日志。例如,在解锁 Jenkins 作为安装后设置向导的一部分时。如果在docker run时没有指定分离模式选项 -d ,那么Jenkins控制台日志则是通过运行此Docker命令提示符窗口显示。


 否则,您可以通过访问Jenkins控制台日志 Docker logs中 的 jenkinsci/blueocean ,使用以下命令:


docker logs <docker-container-name>


 您的 <docker-container-name> 可以使用docker ps 命令获得 。如果您在运行docker run 命令时指定了 --name 参数(如:--name jenkins-blueocean ),则只需使用以下 docker logs 命令:


docker logs jenkins-blueocean


 如果没有指定--name,也可以使用容器运行时的ID来查看容器日志。

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
ca1e1c655590        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp, 50000/tcp   silly_wilbur
[root@localhost ~]# docker logs ca1e1c65

安装后设置向导

11.png

[root@localhost ~]# docker exec -it ca1e1c65 /bin/bash
bash-4.4$ cat /var/jenkins_home/secrets/initialAdminPassword
12a1f53845254ce9ae67d221c181be94

 在解锁Jenkins 页面上,将此密码粘贴到管理员密码字段中,然后单击继续 。


自定义Jenkins


两个选项可以设置:


  • 安装建议的插件 - 安装推荐的一组插件,这些插件基于最常见的用例。

  • 选择要安装的插件 - 选择安装的插件集。当你第一次访问插件选择页面时,默认选择建议的插件。

13.png14.png

12.png

注意:


 可以看到上面有些插件安装失败,在所有插件安装完之后可以点击“重试”,来继续安装之前安装失败的插件,也可以点击“继续”,再按照下面的方法安装插件。


插件安装失败解决方法:https://blog.csdn.net/qq_44895681/article/details/104633654


创建第一个管理员用户

15.png16.png17.png

Blue Ocean 入门


安装 Blue Ocean


Blue Ocean 可以用以下方式安装:


  • 作为 已有Jenkins实例上的一组插件

  • Jenkins-Docker镜像的一部分

在已有Jenkins实例上安装


 在大多数平台安装Jenkins时,默认情况下不安装 Blue Ocean 插件 及其所有其他依赖插件(组成Blue Ocean“插件套件”)。


 要在现有的Jenkins实例上安装Blue Ocean插件套件,您的Jenkins实例必须运行Jenkins 2.7.x或更高版本。


 任何拥有 Administer 权限(通过 基于Matrix 安全设置)的Jenkins用户都可以在Jenkins实例上安装插件 。拥有次权限的Jenkins用户还可以配置系统上其他用户的权限。


要将Blue Ocean安装到您的Jenkins实例:


  1.如果需要,请确保您已经登录到jenkins(作为具有 管理员 权限的用户).


  2.从Jenkins主页(即Jenkins经典用户界面的仪表板),单机左侧的 管理Jenkins ,然后单击中心的 管理插件 。


  3.点击 可用的 选项卡,然后在 过滤 文本框键入 blue ocean ,将过两次插件列表为名称/描述包含“blue”和“ocean”的插件名单。

18.png

  4.选择 安装 列顶部的 Blue Ocean 插件复选框,然后单击 立刻下载并在重启后安装 按钮(推荐)或 安装而不重新启动按钮 。


注意:


  无需选择此过滤列表中其他插件的复选框,因为 Blue Ocean 插件具有其他插件的依赖关系(构成Blue Ocean的插件套件),当您点击安装, 其他插件将被自动选择和安装。如果你选择 安装不重启 按钮, 你可能需要重启Jenkins来获取Blue Ocean的完整功能。


  Blue Ocean 在安装后不需要额外的配置,现有的pipeline 和其他项目(如自由风格作业)将照常运行。但是,请注意, 首次使用特定的 Git 服务(即GitHub,Bitbucket或普通Git服务器)在 Blue Ocean中创建pipeline 时,Blue Ocean会提示您输入credentials 以访问Git服务器上的存储库。在Blue Ocean可以将 Jenkinsfile 写入存储库之前


作为Jenkins-Docker镜像的一部分


  Blue Ocean套件也与Jenkins捆绑在一起,作为Jenkins Docker镜像 (jenkinsci/blueocean)的一部分,该镜像可以从 Docker Hub 存储库获得。


访问 Blue Ocean


  一旦Jenkins环境安装了Blue Ocean,登录到Jenkins经典UI 后,您可以通过点击左侧的 打开Blue Ocean 来访问Blue Ocean页面。或者,您可以在您的Jenkins url后面追加 /blue 直接访问Blue Ocean (如 http://192.168.2.73:8080/blue)

19.png20.png


创建流水线


  Blue Ocean 能够更容易的在Jenkins中创建一个流水线。


  流水线可以由源代码控制中存在的Jenkinsfile 生成, 或者使用 Blue Ocean 流水线编辑器 生成一个新的流水线(作为 Jenkinsfile 会提交到源代码控制中)。


配置流水线项目

21.png

GitHub仓库

22.png

  在 Connect to GitHub 部分的Your GitHub access token字段, 输入你的 GitHub 访问令牌。

23.png

  如果你没有 GitHub 访问令牌, 点击 Create an access key here


创建访问令牌


 1.在一个新的选项卡中, 登录 GitHub 账户并且在 GitHub的 New Personal Access Token 页面,为你的GirHub访问令牌 (e.g. Blue Ocean)输入一个简短的 Token description。


  Note: 访问令牌通常是一个字母数字字符串,它通过你的GitHub 账户对你的GitHub账户访问各种特性和区域的权限进行相应的处理。新的访问令牌过程 (通过上面的 Create an access key here 链接触发) 具有预选的合适权限, Blue Ocean 需要访问你的GitHub账户并与其进行交互。


 2.向下滚动直到页面的末尾,然后点击 Generate token。


 3.在生成的 Personal access tokens 页面, 复制新生成的访问令牌。


 4.回到Blue Ocean, 粘贴访问令牌到 Your GitHub access token*字段并点击 *Connect。


  你当前/登陆的Jenkins用户现在可以访问 GitHub a账户 (由你的访问令牌提供), 所以你现在可以 选择 GitHub 账户/组织和存储库。


 Jenkins 为Jenkins用户注册了带有以下详细信息的凭证:


  Domain:blueocean-github-domain


  ID:github


  Name:<jenkins-username>/****** (GitHub Access Token)

24.png

25.png26.png

选择 GitHub 账户/组织和存储库


此时, Blue Ocean 提示你选择 GitHub 账户或你所在的组织, 以及它包含的用于构建你流水线项目的存储库。


 1.在 Which organization does the repository belong to? 部分, 点击:


  • 你的 GitHub 账户为你自己的 GitHub 仓库中的或GitHub的其他地方创建流水线项目。

  • 你所在的组织为组织内的GitHub仓库创建流水线项目。

 2.在 Choose a repository 部分, 点击存储库 (在你 GitHub 账户或组织内) ,从而构建你的流水线项目。如果你的仓库的列表很长, 你可以使用 Search 选项来筛选这个列表。

27.png

3.点击 Create Pipeline。


 Blue Ocean 将会扫描你本地仓库的分支来获得 Jenkinsfile 并为每个包含 Jenkinsfile 的分支运行流水线。如果Blue Ocean 找不到任何 Jenkinsfile, 会提示你通过 流水线编辑器 (通过再次点击 Create Pipeline)创建一个。


注意: 通过Blue Ocean创建的流水线项目实际上是 "多分支流水线"。因此, Jenkins在你仓库的任何分支中寻找至少一个Jenkinsfile 。

28.png29.png


这样我们就构建了一个简单的流水线项目。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
96 2
|
7天前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
96 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
3天前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
94 64
|
6天前
|
Ubuntu 应用服务中间件 nginx
docker入门-快速学会docker
本文介绍了Docker的基本概念,包括镜像、容器、tar文件、Dockerfile和仓库,并通过实际操作演示了如何使用Docker。从拉取Nginx镜像、运行容器、修改容器内容、保存容器为新镜像,到使用Dockerfile构建自定义镜像,最后讲解了如何保存和恢复镜像。文中还推荐了一个在线实践平台Play with Docker,方便读者快速上手Docker。
33 4
docker入门-快速学会docker
|
5天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
54 24
|
6天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
55 24
|
4天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
57 11
|
1月前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
1174 2
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
22天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
49 4
|
1月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。