基于Docker平台的Jenkins安装与Blue Ocean使用入门(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


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


相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
7月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
5月前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
677 3
docker 安装 Postgres 17.6
|
4月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
608 5
|
4月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
429 2
|
8月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
982 4
|
7月前
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
2764 0
|
8月前
|
Linux iOS开发 Docker
MyEMS开源系统安装之Linux/macOS上的DOcker
本指南详细介绍了如何在Linux/macOS上使用Docker部署MyEMS系统。主要内容包括:前置条件(如安装Docker、npm和MySQL),以及分步骤部署各个组件(如myems-api、myems-admin、myems-modbus-tcp等)。每个步骤涵盖源代码复制、环境配置、镜像构建、容器运行及日志管理等操作,并提供了多平台构建的支持。最后,指南还说明了默认端口和登录凭据,帮助用户快速启动并访问MyEMS的管理界面和Web界面。
254 1