zoukankan      html  css  js  c++  java
  • jenkin+docker+git持续集成环境搭建

    1、安装Jenkins(需要在Jenkins容器中安装maven,java环境不用安装,Jenkins初次启动时会自动安装)

      参考:docker中安装Jenkins

    2、配置git

    3、安装docker插件docker-build-step,需要开启远程访问,见另一篇博客:https://www.cnblogs.com/gcgc/p/10489036.html

    4、创建job(事先使用centos基础镜像制作jdk_8u191镜像,再以jdk_8u191镜像为基础镜像创建镜像,并push到私有仓库,部署目标机器pull该镜像并启动容器,进入容器验证对应jar包是否已经启动)

    1、先查杀目标机器是否已经有对应服务镜像和基于此镜像启动的容器

    if docker ps -a|grep -i e-product-test;then
    docker rm -f e-product-test
    fi
    imagesid=`docker images|grep -i 192.168.179.128:5000/e-product-test|awk '{print $3}'`
    if [ ! -n "$imagesid" ] ;then
    echo "image id is null"
    else
    docker rmi $imagesid -f
    fi

    2、创建镜像

    $WORKSPACE/e-product-controller/src/main/resources目录下使用Dockerfile文件创建镜像192.168.179.128:5000/e-product-test:1.0.0

    Dockerfile文件内容,部署jar包

    # 基于jdk_8u191:20190307创建新的镜像
    FROM jdk_8u191:20190307
    # 维护者信息
    MAINTAINER chen

    #挂载/data路径
    VOLUME ["/data"]

    # 将Dockerfile同层级的e-product-dev.jar文件添加到容器的/data路径下
    ADD ./e-product-dev.jar /data/
    #设置工作目录为/data
    WORKDIR /data

    #对外暴露端口9005
    EXPOSE 9005

    # 使用镜像创建容器时执行下面命令,启动该jar,与CMD类似,也是用来指定容器启动时的默认运行的命令。区别在于:运行容器时添加在镜像之后的参数,对ENTRYPOINT是拼接,CMD是覆盖。
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","e-product-dev.jar"]

    3、push镜像到私有仓库,push时镜像需要有格式

    仓库搭建很简单,参考我的另一篇文章:https://www.cnblogs.com/gcgc/p/10489385.html

    4、基于镜像启动容器

    命令:ddocker run -it -d -p 9005:9005 --name e-product-test 192.168.179.128:5000/e-product-test:1.0.0

    5、构建

    6、命令行查看镜像是否已经获取,容器是否启动且已经启动jar包服务

  • 相关阅读:
    Spring Boot 入门之持久层篇(三)
    Spring Boot 入门之 Web 篇(二)
    Spring Boot 入门之基础篇(一)
    Java 设计模式之建造者模式(四)
    Java 设计模式之抽象工厂模式(三)
    Java 设计模式之工厂模式(二)
    c++ type_info and typeid
    opengl& 颜色
    OpenGl And 视图
    如何写一个c++插件化系统
  • 原文地址:https://www.cnblogs.com/gcgc/p/10491699.html
Copyright © 2011-2022 走看看