jenkins docker springcloud 自动化

由于公司要做微服务所以我对jenkins docker springcloud如何集成起来做自动部署做了一些研究,这里写出来也算是结自己一个总结,同时也希望能帮助到其他人。

  我这里环境如下:

  1.  Contos7 64
  2. jdk-8u144-linux-x64.tar.gz
  3. jenkins.war 2.78
  4. docker
  5. gitlab
  6. maven
  7. git
因为jenkins是java 编写的所以需要安装jdk安装步骤很简单这大概也就是一步:


  • 进入jdk的目录  cd /usr/local 我这里是/usr/local这个目录
  • 查看目录下文件 ls -il
  • 解压jdk tar zxvf jdk-8u144-linux-x64.tar.gz
  • 配置jdk 编辑profile 文件加入jdk 环境变量 vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_144
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

  • 使用source命令使配置生效 source /etc/profile
  • 这时我们来执行 java -version 出现下面这个就说明配置成功了。

  • 接下来我们就可以安装jenkins了首选需要下载jenkins 下载地址 http://updates.jenkins-ci.org/download/war/
  • 下载后将jenkins.war上传到 /usr/local
  • 到jenkins.war 目录下 执行 java -jar jenkins.war 或者是 java -jar httpPort=8080(这里可以指定怎么想指定的端口) jenkins.war jenkins 默认是8080
  • 因为liunx 系统没有开放8080端口所以要开放8080端口 firewall-cmd --add-port=8080/tcp --permanent
  • 重新加载防火墙配置 firewall-cmd --reload
  • 这时在浏览器访问 http://ip:8080 就可以看到
  • 这是jenkins为我们自动生成的一个密钥 这个密钥可以在控制台找到 当然也可以去 这个目录下找到/root/.jenkins/secrets/initialAdminPassword这里我们到控制台去找
  • 将这个密钥复制到文本框 点击Continue 就可以看到这个页面
  • 这里这们选择推荐(install suggested plugins)这时可以看到已经在安装插件
  • 安装完成后需要创建一个管理员账户 填写完成后点击 Save and finish
  • 当进入下面这个页面后jenkins就算是安装完成了

  • docker 的安装我这里是安官网的安装这里就不做请说明。请参考官网 https://docs.docker.com/engine/installation/linux/docker-ce/centos/#install-using-the-repository
  • maven 安装 首先要下载一上maven 的安装文件 使用wget下载 wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
  • 下载完成后解压 maven :tar zxvf apache-maven-3.5.0-bin.tar.gz
  • 配置MAVEN_HONE 环境变量
  • 编辑 vim /etc/profile 加入下面这两句
export  MAVEN_HOME=/usr/local/apache-maven-3.5.0
export PATH=$PATH:$MAVEN_HOME/bin

 

  • 配置生效 source /etc/profile
  • 执行mvn -version 看到如果图说明配置成功

  • 配置阿里云的maven repository 进入 maven conf目录下 cd /usr/local/apache-maven-3.5.0/conf
  • 编辑settings.xml加入阿里云的maven仓库 vimsettings.xml
 <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>


  • 安装git yum install -y git
  • 安装完成执行 git --version

  • 接下来进入主题来构建我们的第一个项目

1.在jenkins中创建一个新任务


    2.构建一个自由风格的软件项目


    3.配置项目构建信息

    1)配置git
    2)配置git web hook 安装 gitlab hook plugin
    系统管理 -> 插件管理 -> 可选插件 -> 搜索 gitlab hook plugin -> 选中安装


    首先说明我这里用的是私有的gitlab 如果你的机器可以公网访问那么你可以使用github 或 码云 。搭建私有gitlab请看 http://www.imooc.com/article/17128?block_id=tuijian_wz
    进入点击generate生成一个token 复制 http://192.168.189.139:8080/project/microservice-discovery 进入 gitlab
    Settings -> Integrations -> 添加url和 token


    3)配置构建环境

    maven构建 增加构建步骤 -> invoker top-level-Maven targets
    构建命令 clean package

    shell 脚本 增加构建步骤 -> Execute shell


    构建前我们需要设置一下docker 的regitry通过不安全的http访问 地址以及阿里云加速器 vim /usr/lib/systemd/system/docker.service 加入如下
    --registry-mirror=https://aj2rgad5.mirror.aliyuncs.com --insecure-registry 192.168.189.133:5000
    完成已上步骤我们点构建就可以构建我们的项目了 从下图中可以看到已经开始在构建



    构建完成后我们访问http://192.168.189.139:8761就可以看到springcloud eureak的管理页了


    构建脚本如下:
    #!/bin/bash
    REGISTRY_URL=192.168.189.133:5000
    WORK_DIR=/root/work_build
    PROJECT_NAME=microservice-provider
    PROJECT_VERSION=0.0.1
    if [ ! -e ${WORK_DIR}/${PROJECT_NAME} ] && [ ! -d ${WORK_DIR}/${PROJECT_NAME} ]; then
    mkdir -p ${WORK_DIR}/${PROJECT_NAME}
    echo "Create Dir: ${WORK_DIR}/${PROJECT_NAME}"
    fi
    if [ -e ${WORK_DIR}/${PROJECT_NAME}/Dockerfile ]; then
    rm -rf ${WORK_DIR}/${PROJECT_NAME}/Dockerfile
    echo "Remove File: ${WORK_DIR}/${PROJECT_NAME}/Dockerfile"
    fi
    cp ./Dockerfile ${WORK_DIR}/${PROJECT_NAME}/
    cp ./target/*.jar ${WORK_DIR}/${PROJECT_NAME}/
    cd ${WORK_DIR}/${PROJECT_NAME}/
    docker build -t ${REGISTRY_URL}/microservice/${PROJECT_NAME}:${PROJECT_VERSION} .
    docker push ${REGISTRY_URL}/microservice/${PROJECT_NAME}:${PROJECT_VERSION}
    if docker ps -a | grep ${PROJECT_NAME}; then
    docker rm -f ${PROJECT_NAME}
    echo "Remove Docker Container: ${PROJECT_NAME}"
    fi
    docker run -d -p 8761:8761 --name ${PROJECT_NAME} ${REGISTRY_URL}/microservice/${PROJECT_NAME}:${PROJECT_VERSION}
    • 5
      点赞
    • 15
      收藏
      觉得还不错? 一键收藏
    • 1
      评论
    Jenkins是一款开源的持续集成工具,它可以帮助开发团队自动化地构建、测试和部署软件项目。在Jenkins中配置Docker插件后,我们可以结合Docker技术来进行自动化部署Docker是一种轻量级的容器化技术,它可以将应用程序和其依赖的环境打包成一个可移植的容器,方便在不同的环境中部署和运行。 而Kubernetes(简称K8s)是一个开源的容器编排平台,它可以管理和调度Docker容器集群。通过在K8s中创建Pod、Service等资源对象,我们可以实现Spring Cloud项目的自动化部署。 首先,我们可以使用Jenkins的Pipeline功能来编写自动化部署的流水线脚本。流水线脚本可以定义一系列的步骤,包括构建、测试和部署等。在流水线脚本中,我们可以使用Docker插件来创建Docker镜像,并将其推送到Docker仓库。接着,我们可以使用K8s插件来在Kubernetes集群中创建相关的资源对象,如Deployment和Service等。 在自动化部署过程中,我们可以将Spring Cloud项目的源代码与Dockerfile放在一个Git仓库中,并通过Jenkins的Webhook功能来触发自动化部署流水线。当有新的代码提交时,Jenkins会自动拉取最新的代码,并执行流水线脚本。在流水线脚本中,我们可以使用Maven或Gradle等工具来构建和打包Spring Cloud项目。然后,通过Docker插件创建可运行的Docker镜像,并将其推送到Docker仓库。 最后,使用K8s插件在Kubernetes集群中创建相关的资源对象,如Deployment和Service等。通过创建Deployment对象,我们可以定义应用程序的副本数和容器的镜像。通过创建Service对象,我们可以定义应用程序可以访问的网络端口和负载均衡规则。 通过JenkinsDocker和Kubernetes的自动化部署,我们可以实现Spring Cloud项目的快速、可靠和可重复部署。这种自动化部署的方式可以提高开发效率和部署质量,同时也降低了运维成本和风险。

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值