• 一文学会Docker+Jenkins一键自动化部署~


    一、安装Docker

    很简单,一步步执行即可。

    1、卸载旧版本(有些系统可能会自带)
    yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine  		
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    2、安装yum-utils包
    yum install -y yum-utils
    
    • 1
    3、设置镜像仓库
    yum-config-manager \
        --add-repo \
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    • 1
    • 2
    • 3
    4、安装docker

    #docker-ce表示社区版 ee表示企业版 ,这里我们安装社区版

    yum install docker-ce docker-ce-cli containerd.io
    
    • 1
    5、启动Docker
    systemctl start docker
    
    • 1

    最后通过docker version 查看docker版本信息,看的到说明操作成功了。

    二、安装Jenkins

    Jenkins官网:https://www.jenkins.io/zh/

    1、安装Jenkins

    有了Docker之后,安装一切都是一条命令的事儿~

    docker run --name jenkins -u root --rm -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
    
    • 1

    注意:如果服务器8080端口被占用了,可以选择换个端口

    然后我们访问一下Jenkins:http:${自己部署Jenkins的服务器的地址}:8080,可能需要等待几分钟
    在这里插入图片描述
    然后,我们就可以看到Jenkins了,现在需要对Jenkins进行解锁。

    2、解锁Jenkins

    可以通过docker ps 查看到Jenkins的容器Id

    # 进入Jenkins
    docker exec -it ${容器ID} /bin/bash
    
    #查看密码
    cat /var/jenkins_home/secrets/initialAdminPassword
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    我们将密码输入到刚刚访问的Jenkins页面,点击继续后可能要等待几分钟。

    3、安装插件并创建管理账户

    选择第一项“安装推荐插件”即可
    在这里插入图片描述
    创建管理账户,这个账户一定要自己记得哦~
    在这里插入图片描述
    于是,我们都设置完后就可以登录进Jenkins了。
    在这里插入图片描述

    三、Jenkins系统配置

    1、安装插件

    进入【首页】–【系统管理】–【插件管理】–【可选插件】。搜索以下需要安装的插件,点击安装即可。
    在这里插入图片描述
    一共需要安装三个插件,步骤都一样

    • 安装 Maven Integration
    • 安装 Publish Over SSH(如果不需要远程推送,不用安装)
    • 如果使用 Gitee 码云,安装插件Gitee(这里我们使用gitee)
    2、配置maven

    进入【首页】–【系统管理】–【全局工具配置】,拉到页面最下方 maven–maven 安装。
    在这里插入图片描述

    四、创建任务

    1、新建任务

    回到首页点击新建任务,输入一个任务名称,然后点击构建一个自由风格的软件项目
    在这里插入图片描述

    2、源码管理和添加凭证

    首先我们在gitee中拿到仓库的地址
    在这里插入图片描述
    在这里插入图片描述
    接下来我们添加凭证 先点击添加
    在这里插入图片描述
    在这里插入图片描述

    3、构建触发器

    在这里插入图片描述

    这里只需要输入一条命令,这里只是输入一条命令看是否能成功而已,之后还会添加命令让项目跑起来

    clean install -Dmaven.test.skip=true
    
    • 1

    最后点击保存

    五、测试

    1、构建

    在这里插入图片描述

    2、查看日志

    有时候可能会构建失败,我们可以查看日志 知道出错的原因。
    在这里插入图片描述
    点击后再点击查看控制台
    在这里插入图片描述

    3、查看构建完后的项目位置
    cd /var/jenkins_home/workspace
    ls
    
    • 1
    • 2

    在这里插入图片描述
    即可看到打完的jar包。

    六、运行项目

    我们运行项目的步骤是,通过Dockerfile构建docker镜像,然后在执行镜像即可。

    1、Dockerfile编写

    在SpringBoot项目根目录下创建一个名为Dockerfile(没有后缀)的文件。

    FROM openjdk:8
    ADD target/one-demo-0.0.1-SNAPSHOT.jar app.jar
    EXPOSE 6379
    ENTRYPOINT java -jar /app.jar
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    这里需要懂点Docker的知识,不懂也没关系,照着做就行。

    2、修改Jenkins的任务配置

    点击之前创建好的任务
    在这里插入图片描述
    再点击配置
    在这里插入图片描述
    再回到之前配置触发器的地方
    在这里插入图片描述
    添加命令如下:

    cd /var/jenkins_home/workspace/one-demo
    docker stop one-demo || true
    docker rm one-demo || true
    docker rmi one-demo || true
    docker build -t one-demo .
    docker run -d -p 6379:6379 --name one-demo one-demo:latest
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    备注:

    • 添加“ ||true ”是表示如果命令执行失败也会继续执行。为的是防止第一次执行时one-demo不存在而报错 使命令无法继续执行下去。
    • 另外用6379端口是因为我阿里云的安全组目前只开了8080端口和6379端口,然后阿里云帐号又用的是别人的号,我这边登录不了。所以暂时没法开放其他端口,所以只能用了和redis相同的6379端口,哈哈。

    七、验证

    先使用docker ps看自己构建的镜像是否跑起来了。
    在这里插入图片描述
    然后我们的SpringBoot项目中有一个测试接口
    在这里插入图片描述
    我可以在浏览器中访问一下这个接口、完美运行。
    在这里插入图片描述

    这样,我们以后本地的代码修改后只需要提交至git,然后到Jenkins中点击构建即可重新部署项目。非常方便有木有!!!

    八、补充(Jenkins动态选择git分支)

    1、安装Git Parameter插件

    在这里插入图片描述

    2、配置

    1、点击项目再点击配置

    在这里插入图片描述
    在这里插入图片描述

    2、配置“参数化构建”

    在这里插入图片描述

    在这里插入图片描述

    3、测试

    每次点击构建时即可动态的选择git分支
    在这里插入图片描述

    九、后记

    恭喜你,完结撒花,就是这么简单。
    生活明朗,万物可爱,人间值得,未来可期!!!

  • 相关阅读:
    最新AI写作创作系统源码ChatGPT源码,支持AI绘画/支持OpenAI-GPT全模型+国内AI全模型
    使用 OpenTelemetry 构建 .NET 应用可观测性(4):ASP.NET Core 应用中集成 OTel
    supOS APP开发者课程练习册
    Hive——Hive常用内置函数总结
    R语言LDA、CTM主题模型、rjags 吉布斯gibbs采样文本分析论文摘要、通讯社数据
    dubbo(2):zookeeper和dubbo-admin的安装
    Oracle通过DBLINK访问达梦数据库
    基于Antd Table自定义通用columns列筛选配置
    01背包代码模板
    今天我们来写个ArrayList
  • 原文地址:https://blog.csdn.net/weixin_45647685/article/details/127825728