Docker里面部署Jenkins
1. 引言
Jenkins是一个开源的持续集成工具,通过它可以自动化构建、测试和部署软件项目。在实际应用中,我们常常需要将Jenkins部署到一个独立的服务器上,以便能够长期稳定地运行。本文将介绍如何使用Docker来部署Jenkins,并给出相应的示例代码。
2. Docker简介
Docker是一个开源的容器化平台,它可以将应用程序及其依赖项打包到一个可移植的容器中,并通过容器来实现应用程序的隔离、部署和管理。Docker的核心概念包括镜像、容器和仓库。镜像是一个只读的文件,它包含了运行应用程序所需的所有文件和配置。容器是从镜像创建的一个实例,它可以被启动、停止、删除。仓库是用于存储和共享镜像的地方。
3. 在Docker中部署Jenkins
为了在Docker中部署Jenkins,我们需要完成以下几个步骤:
3.1 获取Jenkins镜像
首先,我们需要从Docker Hub上获取Jenkins的镜像。可以使用以下命令来拉取最新的Jenkins镜像:
docker pull jenkins/jenkins:lts
3.2 创建Jenkins容器
接下来,我们可以使用以下命令来创建一个Jenkins容器:
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins \
-v jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:lts
上述命令中,我们通过-p
参数映射了Jenkins的Web界面端口8080和Slave节点通信端口50000到宿主机的相应端口。通过-v
参数,我们将Jenkins的数据目录jenkins_home
和宿主机上的Docker守护进程通信的socket文件/var/run/docker.sock
挂载到容器中。
3.3 配置Jenkins
在浏览器中访问http://localhost:8080
,可以看到Jenkins的初始配置界面。首次登录时,需要通过控制台输出来获取初始管理员密码。可以使用以下命令来获取密码:
docker logs jenkins
复制控制台输出中的密码,并在网页上输入。之后,可以按照界面指引完成Jenkins的配置。
3.4 安装插件
在Jenkins的插件管理页面,选择需要安装的插件,并点击"安装"按钮进行安装。
3.5 配置Docker插件
为了在Jenkins中使用Docker,我们需要安装和配置相应的Docker插件。在Jenkins的系统管理页面,选择"全局工具配置",找到"Docker installations"部分,点击"Add Docker"按钮配置Docker。
4. 示例代码
下面是一个使用Jenkins和Docker的简单示例代码:
pipeline {
agent {
docker {
image 'maven:3.8.2-jdk-11'
args '-v /root/.m2:/root/.m2'
}
}
stages {
stage('Build') {
steps {
sh 'mvn clean install'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
}
stage('Deploy') {
steps {
sh 'mvn deploy'
}
}
}
}
上述代码定义了一个简单的Jenkins流水线,使用Maven构建、测试和部署项目。在流水线中,我们使用了Docker代理来在容器中运行构建命令。通过-v
参数,我们将主机上的.m2
目录挂载到容器中,以便在容器中使用宿主机上的Maven本地仓库。
5. 状态图
下面是一个使用Mermaid语法表示的Jenkins流水线状态图:
stateDiagram
[*] --> Build
Build --> Test
Test --> Deploy