015 jenkins + maven + springboot + git + docker

1.准备

    1-1 机器四台

          jenkins:192.168.20.200    master:192.168.20.201   

          slave01:192.168.20.202    slave02:192.168.20.203

    1-2 测试项目

          地址:https://code.aliyun.com/995586041/test.git

2.建立jenkins项目

    1-1 安装jenkins   https://my.oschina.net/u/2937605/blog/1602509

    1-2 配置jenkins   https://my.oschina.net/u/2937605/blog/1796310

        这次我们将项目放到 master 的 /home/gh 文件夹下,注意这个文件夹必须在远程主机已经存在,否则会报错:

    1-3 创建一个自由风格的项目:ipweb

    1-4 源码管理

        就是最上边的代码,代码里面就是一个springboot项目,仅提供一个获取本机IP的测试接口,可以自己准备,或者fork一份;接口地址:http://127.0.0.1:8080/ip

        此项目结构如下:

                                       

        application.yml

server:
  port: 8080  #项目启动后的端口号

        Dockerfile                      

FROM jre    #基础镜像
MAINTAINER goldleaf    #作者信息
ADD ./*.jar /home/gh/ipweb/ipweb.jar    #这里是我们项目打包后的jar
CMD java -jar /home/gh/ipweb/ipweb.jar    #容器启动时执行该命令

        docker-stack.yml

version: '3'    #文件版本
services:
  ipweb:
    image: ${IMAGE_NAME}    #制作后的镜像名称
    volumes:
      - /home/log:/home/log    #log地址,如果宿主机上没有该目录,会报错
    networks:
      - central    #docker swarm集群的overlay网络
    ports: 
      - 8090:8080    #开放端口
    deploy:
      replicas: 2    #容器实例个数
      placement:
        constraints: [node.role == worker]    #指定容器只在子节点工作
networks:
  central:
    external:
      name: central    #docker swarm集群的overlay网络

    1-5 mvn构建项目

        maven装在jenkins机器上,打包之后,ssh 发送到mater机器

    1-6 具体配置信息

        1)这里将项目打包后的jar、Dockerfile、docker-stack.yml发送到master

        2)制作相关镜像

        3)镜像build之后,push到私有仓库,我自己搭建的欣慰不是内网,push速度太慢,就用了阿里提供的仓库,所以下边多了一步登陆阿里仓库的命令,如果不想或者没有条件搭建自己的搭建私有仓库,这里是阿里仓库的地址:https://dev.aliyun.com/search.html

        4)docker stack deploy方式启动项目

3.检验项目

    3-1 检查文件:/home/gh/ipweb

  

    3-2 检查镜像:docker images

    3-3 检查stack:docker stack ls

    3-4 检查service:docker stack services gh

    3-5 检查容器运行情况:docker service ps gh_ipweb

    3-6 访问测试:curl 192.168.20.201:8090/ip

猜你喜欢

转载自my.oschina.net/u/2937605/blog/1801893