zoukankan      html  css  js  c++  java
  • Docker和jenkins实现springboot自动部署

    准备:

    一个springboot项目、一台虚拟机(centos 7)。

    安装:

    1. linux安装docker

      更新yum:yum update

      下载docker: yum –y install docker-engine

       

                     2、下载jenkins之前安装jdk:

        查找所有jdk版本: yum -y list java*

        找到正确得版本:

                  

          下载jdk:yum –y install java-1.8.0-openjdk-devel.x86_64

        检查jdk版本: java –version

        查找java位置:whereis java

                               

          3、下载jenkins:

              yumrepos默认没有Jenkins,先将Jenkins加入存储库yum repos

       sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

            sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

            安装jenkins yum –y install jenkins

             

              配置jenkins: vi /etc/sysconfig/Jenkins

            原本下图圈起部分为jenkins8080,我们修改为root9000(0:65535

            中随便取,只要不端口未被其他进程占用)

             

    部署与配置

           1、启动dockerservice docker start

           2、启动jenkinsservice jenkins start

              3ipconfigip

           4、在浏览器输入ip:9000,进入初始页面

             

           5、获取password tail /var/lib/jenkins/secrets/initialAdminPassword

             

              6、将密码拷入浏览器,continue

           7、点击推荐安装插件、之后耐心等待安装

             

           8、安装完成进入管理员注册页面、根据提示注册账号,进入。

                                  Tips:如果忘了账号密码。

               找到jenkinsconfig.xml: cd /var/lib/Jenkins

             

             修改vi config.xml:删除下列部分:

             

           9、如果git下不下来,那就去重下

             

             选择可选插件,搜索git,下载即可。

             

         如果还是不行,自己去找别的教程吧,或者有的时候你重新弄的时候发现你可以下载了。【狗头】

    工程配置

           1、工程根目录下新建Dockerfile

               

    1  FROM: 生成镜像的jdk环境
    2 
    3   ADD 将target下的jar包加入镜像
    4 
    5  VOLUME
    6 
    7  EXPOSE 80 docker暴露给外界的端口80
    8 
    9  ENTRYPOINT 启动app.jar

               2、新建start.sh       

     1 cd `dirname $0`                 #进入根目录
     2 
     3 proj_home=$PWD                  #工程根目录
     4 img_output=${image}          #生成镜像标签
     5 appname=${name}                   #容器名称
     6 port=80                         #docker暴露端口
     7 
     8 #  mvn打包镜像
     9 docker run  --rm doc--name my-maven-project -v /root/.m2:/root/.m2 -v "$PWD":/usr/src/mymaven -w /usr/src/mymaven maven:3.5.0-jdk-8-alpine mvn clean install
    10 # 获得docker容器 id和镜像 id
    11 r_c=`docker ps -a | grep "$appname" | awk '{print $1 }'`
    12 c=`docker ps -a | grep "$appname" | awk '{print $1 }'`
    13 r_img=`docker images | grep "$appname" | awk '{print $3 }'`
    14 # 如果容器正在运行,停止它
    15 if [ "$r_c"x != ""x ]; then
    16     docker stop "$r_c"
    17 fi
    18 # 删除容器
    19 if [ "$c"x != ""x ]; then
    20     docker rm "$c"
    21 fi
    22 # 删除镜像
    23 if [ "$r_img"x != ""x ]; then
    24     docker rmi "$r_img"
    25 fi
    26 
    27 # 生成镜像
    28 docker build -t $img_output .
    29 # 日志目录
    30 mkdir -p $PWD/logs
    31 chmod 777 $PWD/logs
    32 
    33 # 启动镜像  8086为工程的端口
    34 docker run -d --name $appname -p $port:8086 $img_output

    Jenkins自动化配置

    1. 新建任务

                                   输入任务名称、选择一个自由风格的软件项目。确定。

           

              2.设置:找到源码管理:填入远程仓库http。

                                   点击【添加】,添加认证:你的username和password。添加完毕后,返回选择即可。

            

              3.构建触发器选择轮询SCM:每分钟检查代码是 * * * * * 。

                                   圈起来的部分是轮询机制帮助

            

              4.构建选择执行shell

             

            填入命令:

            cd /var/lib/jenkins/workspace/yifeng

            ./start.sh

            点击保存。

            5.查看

               【立即构建】,然后点击最新的构建,进入。选择控制台输出

              

             

               

              这样算成功了。可以在浏览器测试工程的接口了。

              Tips:控制台输出第二行 是linux上的工作空间。 /var/lib/jenkins/workspace/${name}

    最后

              第一次构建可能比较久,日志会不一样,因为docker需要pull java:8maven:3.5.0-jdk-8-alpine。如果是在日志上是卡到maven的话可以去网上查找docker拉取镜像加速的教程,多试几次就可以了。

  • 相关阅读:
    JS中的this指向问题
    Jinja2用法总结
    Kafka 生产者 拦截器
    Kafka 生产者 工作流程和Demo示例
    Kafka 验证集群部署和吞吐量测试
    Kafka 线上环境部署需要考虑的因素
    Kafka单点环境安装
    Kafka和Confluent的关系
    Kafka 概要设计
    ActiveMQ 介绍安装使用入门
  • 原文地址:https://www.cnblogs.com/zhuyan521/p/10791121.html
Copyright © 2011-2022 走看看