怎么用Jenkins+docker发布Springbot服务

发布时间:2023-03-09 11:24:35 作者:iii
来源:亿速云 阅读:161

怎么用Jenkins+docker发布Springbot服务

在现代软件开发中,持续集成和持续部署(CI/CD)已经成为不可或缺的一部分。Jenkins作为一款开源的自动化服务器,广泛用于实现CI/CD流程。而Docker则是一种轻量级的容器化技术,能够将应用程序及其依赖打包到一个可移植的容器中。本文将详细介绍如何使用Jenkins和Docker来发布Spring Boot服务。

1. 环境准备

在开始之前,确保你已经具备以下环境:

2. 配置Jenkins

2.1 安装必要的插件

在Jenkins中,首先需要安装一些必要的插件:

  1. Docker Plugin:用于在Jenkins中与Docker进行交互。
  2. Git Plugin:用于从Git仓库拉取代码。
  3. Maven Integration Plugin:用于构建Maven项目。

你可以通过Jenkins的插件管理页面来安装这些插件。

2.2 创建Jenkins任务

  1. 登录Jenkins,点击“新建任务”。
  2. 输入任务名称,选择“构建一个自由风格的软件项目”,然后点击“确定”。
  3. 在“源码管理”部分,选择Git,并填写你的Spring Boot项目的Git仓库URL。
  4. 在“构建触发器”部分,选择“Poll SCM”,并设置轮询间隔(例如H/5 * * * *表示每5分钟检查一次代码变更)。
  5. 在“构建”部分,点击“增加构建步骤”,选择“Invoke top-level Maven targets”,并填写Maven命令(例如clean package)。

3. 编写Dockerfile

在Spring Boot项目的根目录下创建一个名为Dockerfile的文件,内容如下:

# 使用官方的Java 11镜像作为基础镜像
FROM openjdk:11-jre-slim

# 设置工作目录
WORKDIR /app

# 将构建好的Spring Boot应用jar包复制到容器中
COPY target/your-spring-boot-app.jar app.jar

# 暴露端口
EXPOSE 8080

# 启动Spring Boot应用
ENTRYPOINT ["java", "-jar", "app.jar"]

请将your-spring-boot-app.jar替换为你的Spring Boot应用的实际jar包名称。

4. 编写Jenkins Pipeline脚本

为了更灵活地控制构建和部署流程,我们可以使用Jenkins Pipeline。在Jenkins任务中,选择“Pipeline”作为构建方式,并在Pipeline脚本中编写以下内容:

pipeline {
    agent any

    environment {
        DOCKER_IMAGE = 'your-docker-image-name'
        DOCKER_TAG = 'latest'
        DOCKER_REGISTRY = 'your-docker-registry'
    }

    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'https://github.com/your-repo/your-spring-boot-app.git'
            }
        }

        stage('Build') {
            steps {
                sh 'mvn clean package'
            }
        }

        stage('Build Docker Image') {
            steps {
                script {
                    docker.build("${DOCKER_IMAGE}:${DOCKER_TAG}")
                }
            }
        }

        stage('Push Docker Image') {
            steps {
                script {
                    docker.withRegistry('https://${DOCKER_REGISTRY}', 'docker-credentials') {
                        docker.image("${DOCKER_IMAGE}:${DOCKER_TAG}").push()
                    }
                }
            }
        }

        stage('Deploy') {
            steps {
                script {
                    sh "docker stop ${DOCKER_IMAGE} || true"
                    sh "docker rm ${DOCKER_IMAGE} || true"
                    sh "docker run -d -p 8080:8080 --name ${DOCKER_IMAGE} ${DOCKER_IMAGE}:${DOCKER_TAG}"
                }
            }
        }
    }
}

请将your-docker-image-nameyour-docker-registryyour-repo/your-spring-boot-app.git替换为实际的值。

5. 配置Docker Registry凭证

在Jenkins中,你需要配置Docker Registry的凭证,以便能够推送Docker镜像。你可以通过以下步骤来配置:

  1. 登录Jenkins,点击“凭据” > “系统” > “全局凭据”。
  2. 点击“添加凭据”,选择“Username with password”。
  3. 输入Docker Registry的用户名和密码,并设置一个ID(例如docker-credentials)。

6. 运行Jenkins任务

一切准备就绪后,你可以手动触发Jenkins任务,或者等待代码变更自动触发任务。Jenkins将执行以下步骤:

  1. Checkout:从Git仓库拉取代码。
  2. Build:使用Maven构建Spring Boot项目。
  3. Build Docker Image:根据Dockerfile构建Docker镜像。
  4. Push Docker Image:将构建好的Docker镜像推送到Docker Registry。
  5. Deploy:停止并删除旧的Docker容器,然后启动新的Docker容器。

7. 验证部署

部署完成后,你可以通过访问http://your-server-ip:8080来验证Spring Boot服务是否正常运行。

8. 总结

通过Jenkins和Docker的结合,我们可以实现Spring Boot服务的自动化构建、镜像打包和部署。这不仅提高了开发效率,还确保了部署的一致性和可靠性。希望本文能帮助你顺利实现Spring Boot服务的CI/CD流程。


注意:在实际生产环境中,你可能还需要考虑更多的因素,如安全性、监控、日志管理等。此外,Jenkins Pipeline的脚本也可以根据实际需求进行更复杂的定制。

推荐阅读:
  1. 使用jenkins怎么部署一个springboot项目
  2. Jenkins+maven持续集成的实现方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jenkins docker

上一篇:vue怎么实现发送验证码计时器防止刷新

下一篇:怎么在浏览器测试JavaScript

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》