Jenkins通常作为一个独立的应用程序在其自己的流程中运行, 内置Java servlet 容器/应用程序服务器(Jetty)。
Jenkins也可以运行在不同的Java servlet容器((如Apache Tomcat 或 GlassFish))中作为servlet运行.但是设置这些类型的安装的说明超出了本页的范围。
最低推荐配置:
256MB可用内存
1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB)
为小团队推荐的硬件配置:
1GB+可用内存
50 GB+ 可用磁盘空间
软件配置:
Java 8—无论是Java运行时环境(JRE)还是Java开发工具包(JDK)都可以。
Docker
Docker是一个在称为“容器”(或Docker容器)的孤立环境中可运行应用程序的平台。 像Jenkins这样的应用程序可以作为只读的“镜像”(或Docker镜像)下载, 每个镜像都作为容器在Docker中运行。Docker容器实际上是Docker镜像的“运行实例”。 从这个角度来看,镜像永久存储(只要镜像更新发布),而容器暂时存储。 在Docker文档的入门指南,Getting Started, Part 1: Orientation and setup页面中阅读有关这些概念的更多信息 。
Docker的基础平台和容器设计意味着可以在任何支持的操作系统(macOS,Linux和Windows) 或云服务(AWS和Azure)上运行单个Docker镜像(对于任何给定的应用程序,如Jenkins)。
安装Docker
要在您的操作系统上安装Docker,请访问 Docker store网站并单击适用于您的操作系统或云服务的Docker Community Edition框。 按照其网站上的安装说明进行操作。
Jenkins也可以在Docker企业版上运行,您可以通过 Docker商店网站上的Docker EE访问它。
如果您要在基于Linux的操作系统上安装Docker,请确保配置Docker,以便它可以作为非root用户进行管理。 在Docker的Post-installation steps for Linux网页中了解更多关于它 的文档。 如何将Docker配置为默认启动的方式也可在此文档中查找。
在Docker中下载并运行Jenkins
打开一个终端窗口。
下载 jenkinsci/blueocean 镜像并使用以下docker run 命令将其作为Docker中的容器运行 :
docker run \
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
(可选) jenkinsci/blueocean 关闭时自动删除Docker容器(下图为实例)。如果您需要退出Jenkins,这可以保持整洁。
(可选)jenkinsci/blueocean 在后台运行容器(即“分离”模式)并输出容器ID。如果您不指定此选项, 则在终端窗口中输出正在运行的此容器的Docker日志。
映射(例如“发布”)jenkinsci/blueocean 容器的端口8080到主机上的端口8080。 第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。
(可选)将 jenkinsci/blueocean 容器的端口50000 映射到主机上的端口50000。 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。 您可以通过“ 配置全局安全性” 页面更改Jenkins主服务器上的端口号。如果您要将您的Jenkins主机的JNLP代理端口的TCP端口 值更改为51000(例如),那么您需要重新运行Jenkins(通过此 docker run …命令)并指定此“发布”选项 -p 52000:51000,其中最后一个值与Jenkins master上的这个更改值相匹配,第一个值是Jenkins主机的主机上的端口号, 通过它,基于JNLP的Jenkins代理与Jenkins主机进行通信 - 例如52000。
(可选,但强烈建议)映射在容器中的/var/jenkins_home
目录到具有名字 jenkins-data 的volume。 如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。 如果您希望每次重新启动Jenkins(通过此 docker run … 命令)时保持Jenkins状态,则此选项是必需的 。 如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例。
注意: 所述的 jenkins-data 卷也可以 docker volume create命令创建: docker volume create jenkins-data 代替映射 /var/jenkins_home 目录转换为Docker卷,还 可以将此目录映射到计算机本地文件系统上的目录。 例如,指定该选项 -v
H
O
M
E
/
j
e
n
k
i
n
s
:
/
v
a
r
/
j
e
n
k
i
n
s
h
o
m
e
会
将
容
器
的
/
v
a
r
/
j
e
n
k
i
n
s
h
o
m
e
目
录
映
射
到
本
地
计
算
机
上
目
录
中
的
j
e
n
k
i
n
s
子
目
录
,
该
HOME/jenkins:/var/jenkins_home 会将容器的 /var/jenkins_home 目录映射 到 本地计算机上目录中的 jenkins 子目录, 该
HOME/jenkins:/var/jenkinshome会将容器的/var/jenkinshome目录映射到本地计算机上目录中的jenkins子目录,该HOME目录通常是 /Users//jenkins 或/home/<your-username>/jenkins
。
(可选 /var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。 该映射允许 jenkinsci/blueocean 容器与Docker守护进程通信, 如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的。 如果运行声明式管道,其语法包含agent部分用 docker
例如, agent { docker { … } } 此选项是必需的。 在Pipeline Syntax 页面上阅读更多关于这个的信息 。
jenkinsci/blueocean Docker镜像本身。如果此镜像尚未下载,则此 docker run 命令 将自动为您下载镜像。此外,如果自上次运行此命令后发布了此镜像的任何更新, 则再次运行此命令将自动为您下载这些已发布的镜像更新。 注意:这个Docker镜像也可以使用以下 docker pull命令独立下载(或更新) : docker pull jenkinsci/blueocean 注意: 如果复制并粘贴上面的命令片段不起作用,请尝试在此处复制并粘贴此无注释版本:
docker run \
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.so
Linux
Debian/Ubuntu
在基于Debian的发行版(如Ubuntu)上,您可通过apt
安装Jenkins
在an apt repository可获得最新版本,较老但稳定的LTS版本在this apt repository这里可获得。
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
安装这个软件包将会:
将Jenkins设置为启动时启动的守护进程。查看/etc/init.d/jenkins
获取更多细节
创建一个’jenkins’用户来运行此服务
直接将控制台日志输出到文件/var/log/jenkins/jenkins.log
。如果您正在解决Jenkins问题,请检查此文件
/etc/default/jenkins`为启动填充配置参数,例如JENKINS_HOME
将Jenkins设置为在端口8080上进行监听。使用浏览器访问此端口以开始配置
Jenkins安装指导官网