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 # 使用镜像创建容器时执行下面命令,启动该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包服务

jenkin+docker+git持续集成环境搭建的更多相关文章

  1. Linux下Jenkins+git+gradle持续集成环境搭建

    Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集  发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文   一.项目介绍 和 linux ...

  2. Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现

    前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...

  3. Docker+Jenkins持续集成环境(5): android构建与apk发布

    项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...

  4. Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境

    本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...

  5. Docker+Jenkins_自动化持续集成环境搭建

    前一篇文章里已经在内网环境搭建好docker 详见:https://www.cnblogs.com/befer/p/9107503.html, 现在接着搭建一个Docker+Jenkins的集成环境 ...

  6. Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目

    前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目.这一节,我们继续扩展功能,增加对Nodejs ...

  7. Jmeter+Ant+Jenkins接口自动化持续集成环境搭建(Linux)

    一.安装说明 系统环境:CentOS release 6.4 JDK版本:jdk1.8.0_181 Jmeter版本:apache-jmeter-3.0 Ant版本:apache-ant-1.9.13 ...

  8. Jenkins+Maven+Gitlab+Nexus持续集成环境搭建

      1.软件及服务介绍 Jenkins:jenkins是实现代码自动化流程上线的工具,Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个 ...

  9. Jenkins - 持续集成环境搭建

    1. Jenkins 概述 Jenkins是一个开源的持续集成工具.持续集成主要功能是进行自动化的构建.自动化构建包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 2 ...

随机推荐

  1. Hyberledger-Fabric 1.00 RPC学习(1)

    参考:http://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html 本文的目的就是基于Hyperledger Fabr ...

  2. cpu真实核数

    判断依据: 1.具有相同core id的cpu是同一个core的超线程. 2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores. 英文版: 1.Physical id an ...

  3. String(byte[] bytes, Charset charset) 和 getBytes() 使用

    转自:https://techbirds.iteye.com/blog/1855960 @Test public void testBytes(){ //字节数 //中文:ISO:1 GBK:2 UT ...

  4. views中class定义(类的写法)CBV

    from django.views import View class Home(View): def dispatch(self, request, *args, **kwargs): print( ...

  5. vs读取ini文件

    读取string类型: DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR ...

  6. 13 MySQL--存储过程

    1.存储过程的介绍 对于存储过程,可以接收参数,其参数有三类: in 仅用于传入参数用 out 仅用于返回值用 inout 既可以传入又可以当作返回值 存储过程包含了一系列可执行的sql语句,存储过程 ...

  7. OpenLayers 3 扩展插件收集

    OpenLayers 3 扩展插件 Awesome-OpenLayers OL3扩展 ol3-ext 很酷的一组 OpenLayers 3 (ol3) 扩展: 编辑-选择控件.CSS popup(弹出 ...

  8. pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者间的关系

    pg_hba.conf.pool_hba.conf 以及 pool_passwd 三者间的关系: 1.pg_hba.conf.pool_hba.conf 以及 pool_passwd 三者关系 pg_ ...

  9. 中国大陆被SCI收录的较高影响力期刊

    1.清华主办的期刊Nano Research 清华新闻网2012年9月10日电:据汤森路透公司公布的2011年SCI期刊影响因子,清华大学主办的期刊Nano Research(纳米研究)的影响因子为6 ...

  10. MySQL学习1---增删改查

    1.基本概念 数据表:由行和列组成的二维表: 数据表中的行通常叫做记录或者元组: 数据表中的列通常叫做字段后者属性: 主键:数据表中的每个记录都必须是唯一的,而不允许出现完全相同的记录. 键:即关键字 ...