Dock术大集合:Docker + Jenkins 实现 CI/CD,一步步手把手教你自动化部署!
2023-10-02 04:49:05
序曲:何谓CI/CD?
如今,软件的开发与部署不再是各自为政,取而代之的是一种名为CI/CD(持续集成/持续部署)的方法论。它将开发、测试和部署等软件生命周期的不同阶段连接起来,形成一个完整的自动化流水线。具体而言:
-
持续集成(CI) :代码提交后立即进行构建、测试和集成。
-
持续部署(CD) :在测试通过后自动将代码部署到生产环境。
CI/CD的精髓在于自动化,它能极大提高软件交付的速度和质量,因此受到越来越多的企业和开发者的青睐。
第一乐章:Docker介绍
Docker是一个开源的容器引擎,可以将应用及其依赖项打包成一个轻量级的、可移植的容器。Docker容器可以独立运行,不受底层基础设施的影响,因此在不同的环境中可以实现一致的运行效果。
第二乐章:Jenkins介绍
Jenkins是一个开源的持续集成和持续部署工具。它可以自动执行构建、测试和部署任务,并提供友好的图形用户界面(GUI)用于管理和监控CI/CD流水线。
第三乐章:使用Docker和Jenkins实现CI/CD
接下来,我们将手把手地指导你使用Docker和Jenkins构建一个CI/CD流水线,实现自动化的部署。
1. 安装和配置Docker
首先,你需要在你的服务器上安装Docker。具体步骤可以参考Docker官方文档。
安装完成后,你还需要配置Docker。具体步骤如下:
- 创建一个Docker用户组,并把自己添加到这个组中:
sudo groupadd docker
sudo usermod -aG docker $USER
- 重新启动Docker服务:
sudo systemctl restart docker
2. 安装和配置Jenkins
接下来,你需要在你的服务器上安装Jenkins。具体步骤可以参考Jenkins官方文档。
安装完成后,你还需要配置Jenkins。具体步骤如下:
- 启动Jenkins服务:
sudo systemctl start jenkins
-
打开浏览器,访问
http://localhost:8080
,即可进入Jenkins的管理界面。 -
初次登录时,需要设置一个管理员密码。
-
接下来,你需要安装一些插件。在Jenkins的管理界面中,点击“管理Jenkins”>“管理插件”>“可用”,然后搜索并安装以下插件:
- Git
- Docker
- Docker Pipeline
- Kubernetes
3. 创建CI/CD流水线
现在,你可以开始创建CI/CD流水线了。
-
在Jenkins的管理界面中,点击“新建任务”。
-
选择“Pipeline”。
-
在“流水线”字段中,粘贴以下内容:
node {
def gitUrl = 'https://github.com/jenkinsci/docker-simple-maven-example.git'
def dockerImage = 'jenkinsci/docker-simple-maven-example:latest'
stage('Checkout code') {
git url: gitUrl
}
stage('Build and test') {
sh 'mvn clean install'
}
stage('Create Docker image') {
docker.build image: dockerImage
}
stage('Push Docker image to registry') {
docker.withRegistry('https://index.docker.io/v1/', 'username', 'password') {
docker.push(dockerImage)
}
}
stage('Deploy to Kubernetes') {
kubernetesDeploy(
name: 'example-app',
kubeconfig: 'path/to/kubeconfig',
definition: 'path/to/deployment.yml'
)
}
}
- 点击“保存”。
4. 运行流水线
现在,你可以运行流水线了。
-
在流水线列表中,点击你刚刚创建的流水线。
-
点击“立即构建”。
-
等待流水线运行完成。
5. 查看结果
流水线运行完成后,你可以点击“控制台输出”查看构建日志。
如果流水线运行成功,你应该可以看到如下输出:
[Pipeline] End of Pipeline
Finished: SUCCESS
尾声:小结
至此,你已经成功地使用Docker和Jenkins构建了一个CI/CD流水线。接下来,你可以根据自己的需要,对流水线进行修改,以适应不同的项目和部署环境。
CI/CD是一种非常强大的工具,它可以极大提高软件交付的速度和质量。如果你还没有使用CI/CD,那么强烈建议你尝试一下。