准备:

一个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:

          yum的repos默认没有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

        原本下图圈起部分为jenkins和8080,我们修改为root和9000(0:65535

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

        

部署与配置

       1、启动docker:service docker start

       2、启动jenkins:service jenkins start

          3、ipconfig查ip

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

        

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

        

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

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

        

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

Tips:如果忘了账号密码。

找到jenkins的config.xml: cd /var/lib/Jenkins

        

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

        

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

        

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

        

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

工程配置

       1、工程根目录下新建Dockerfile。

          

  FROM: 生成镜像的jdk环境

   ADD 将target下的jar包加入镜像

  VOLUME

  EXPOSE  docker暴露给外界的端口80

  ENTRYPOINT 启动app.jar

      2、新建start.sh       

 cd `dirname $`                 #进入根目录

 proj_home=$PWD                  #工程根目录
img_output=${image} #生成镜像标签
appname=${name} #容器名称
port= #docker暴露端口 # mvn打包镜像
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.-jdk--alpine mvn clean install
# 获得docker容器 id和镜像 id
r_c=`docker ps -a | grep "$appname" | awk '{print $1 }'`
c=`docker ps -a | grep "$appname" | awk '{print $1 }'`
r_img=`docker images | grep "$appname" | awk '{print $3 }'`
# 如果容器正在运行,停止它
if [ "$r_c"x != ""x ]; then
docker stop "$r_c"
fi
# 删除容器
if [ "$c"x != ""x ]; then
docker rm "$c"
fi
# 删除镜像
if [ "$r_img"x != ""x ]; then
docker rmi "$r_img"
fi # 生成镜像
docker build -t $img_output .
# 日志目录
mkdir -p $PWD/logs
chmod $PWD/logs # 启动镜像 8086为工程的端口
docker run -d --name $appname -p $port: $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:8和maven:3.5.0-jdk-8-alpine。如果是在日志上是卡到maven的话可以去网上查找docker拉取镜像加速的教程,多试几次就可以了。

Docker和jenkins实现springboot自动部署的更多相关文章

  1. 从Docker 到Jenkins 到Ansible的部署经验

    从Docker 到Jenkins 到Ansible的部署经验 工作中,除了开发功能,还负责系统的部署工作.我从频繁的部署工作中,逐渐找到了一些偷懒的方法.从传统的Java -jar命令启动服务,到通过 ...

  2. 使用Docker构建持续集成与自动部署的Docker集群

    为什么使用Docker " 从我个人使用的角度讲的话  部署来的更方便 只要构建过一次环境 推送到镜像仓库 迁移起来也是分分钟的事情 虚拟化让集群的管理和控制部署都更方便 hub.docke ...

  3. Jenkins spring boot 自动部署方案

    原文地址:http://www.cnblogs.com/skyblog/p/5632869.html 现在主流的自动部署方案大都是基于Docker的了,但传统的自动部署方案比较适合中小型公司,下面的方 ...

  4. Jenkins下Vue自动部署(二)

    1Jenkins配置 获取首次密码 sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword 2 2.1J ...

  5. Jenkins下Vue自动部署(一)

    1,服务器上安装docker http://www.runoob.com/docker/ubuntu-docker-install.html?tdsourcetag=s_pctim_aiomsg 2, ...

  6. Jenkins 配置 SpringBoot 自动构建部署

    服务器版本 Linux version 3.10.0-957.12.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8 ...

  7. Jenkins+Svn+Docker搭建持续集成环境 自动部署

    一.准备工作: 两台服务器:192.168.206.212,192.168.206.213 自己新建一个maven项目 其中两台机子做下面的软件配置 212机子: 安装expect并配置: 安装jen ...

  8. Jenkins+svn+maven自动部署到tomcat

    jenkins所在主机配置好,jdk,maven,Tomcat 1.配置maven,jdk环境 1) 进入配置界面--->[系统管理]--->[Global Tool Configurat ...

  9. 基于docker的gitlab+gitlabrunner+ansible自动部署

    系统架构图 网络架构 一.安装docker,确保hostname没有问题 ,查看/etc/hostname./etc/hosts. https://docs.docker.com/engine/ins ...

随机推荐

  1. 利用ResultFilter实现asp.net mvc 页面静态化

    为了提高网站性能.和网站的负载能力,页面静态化是一种有效的方式,这里对于asp.net mvc3 构架下的网站,提供一种个人认为比较好的静态话方式. 实现原理是通过mvc提供的过滤器扩展点实现页面内容 ...

  2. C#-----线程安全的ConcurrentQueue<T>队列

     ConcurrentQueue<T>队列是一个高效的线程安全的队列,是.Net Framework 4.0,System.Collections.Concurrent命名空间下的一个数据 ...

  3. CentOS6.5 切换 图形界面 与 命令行界面

    CentOS6.5 切换图形界面与命令行界面 [1]场景1:图形界面 -> 命令行界面 方式一(快捷键):Ctrl + Alt + F2 方式二(终端命令):init 3 (PS:init与3之 ...

  4. css3 box-flex

    应用地址:http://www.jb51.net/css/467291.html box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高.水平均分.按比例划 ...

  5. kubernetes集群pod使用tc进行网络资源限额

    kubernetes集群pod使用tc进行网络资源限额 Docker容器可以实现CPU,内存,磁盘的IO限额,但是没有实现网络IO的限额.主要原因是在实际使用中,构建的网络环境是往超级复杂的大型网络. ...

  6. python基础部分----基本数据类型

    0.文章来源:http://www.cnblogs.com/jin-xin/articles/7562422.html 1.数字 2.bool 3.str字符串 3.1.字符串的索引与切片. 索引即下 ...

  7. etcd v3 备份恢复

    备份数据: # ETCDCTL_API=3 etcdctl --endpoints localhost:2379 snapshot save snapshot.db 恢复数据: # ETCDCTL_A ...

  8. TeamCity安装

    1 使用docker安装 安装手册:https://hub.docker.com/r/jetbrains/teamcity-server/2 安装包安装. docker run -it --name ...

  9. (转)在Eclipse中进行C/C++开发的配置方法(20140721最新版)

    因准备考试原因需要在windows下配置C++标准运行环境,找到此文,Mark之. 先列举下自己遇到的情况: 1 JRE安装不上,点了exe文件后没有反应:   安装JDK!!! 2 Eclipse找 ...

  10. spark报错解决

    19/03/04 18:18:42 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path java.i ...