首先搭建jenkins+maven+nexus这一套自动化打包工具,并配置好相应配置,这里就不再赘述了。

其次,搭建好docker集群和私有仓库,以及安装好docker-compose工具,配置好相应的yaml配置文件

以下是增加新工程流程

1,在jenkins中新建maven或者其他工程。

2,需要jenkins中配置,相关信息,如svn路径,maven打包的参数,以及打包成功后需要执行的命令

以上是打包成功后需要执行的命令,需要注意的有以上4个地址,1,2,是把当前工程名和镜像名称这些变量放到dockerrc文件中,在以后的自动部署中要使用

3是dockerbuild构建镜像的文件夹,4,构建镜像的名称。往下就是构建镜像,推送到私有仓库,最后执行自动化脚本运行容器,最后注意工程的workspace里面的ROOT.WAR的路径,不是完全都一样的,根据每个工程名字和路径修改。

3,自动化脚本,就是以上的命令最后的deloyjava.sh

载入dockerrc变量,先执行远程node集群预下载镜像,提高容器启动速度,定义docker-compose.yaml文件位置,更新版本号,最后启动容器。

4,需要建立的几个文件夹

首先根据jenkins中执行的命令去建立文件夹,以上的命令中,jenkins的workspace自然不用建立了,因为它会自动创建,但是

APP_DIR=/data/ifengsite/app_path/$JOB_BASE_NAME  这个需要建立,根据工程名字建立,这个文件夹是dockerbuild创建镜像的文件夹。

文件夹里东西,必有的肯定是Dockerfile文件,以及一些脚本,和需要放入的文件等等

5,需要修改的文件

需要修改hosts文件,因为在上面的自动部署脚本中会调用hosts文件去预先 下载镜像,所以定义工程名主机组去预先下载镜像

这是示例

需要修改docker-compose.yaml,增加新工程的容器启动参数和命令,已经映射端口,内存等等。

这是示例

最后容器启动成功。

以上只是简单的流程,具体 出问题了,还需要仔细排查,根据jenkins输出提示和docker输出提示。

jenkins+docker+docker-compose完整发版流程的更多相关文章

  1. Docker:三、深入Docker容器&Asp.net发版

    各位看官,我们前面已经有过两篇文章的研究了,哈哈,都是皮毛... 今天我们来看看docker容器内部,一探究竟... 一.进入docker容器 进入Linux容器非常简单,直接使用如下命令即可: do ...

  2. Jenkins 结合 Docker 为 .NET Core 项目实现低配版的 CI&CD

    随着项目的不断增多,最开始单体项目手动执行 docker build 命令,手动发布项目就不再适用了.一两个项目可能还吃得消,10 多个项目每天让你构建一次还是够呛.即便你的项目少,每次花费在发布上面 ...

  3. 利用jenkins和docker实现持续交付

    利用jenkins和docker实现持续交付 一.什么是持续交付 让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定.持续的保持在随时可以发布的状况.它的目标在于让软件的构建.测试与发布变得更 ...

  4. Docker: Jenkins与Docker的自动化CI/CD流水线实战

    什么是CI/CD 持续集成(Continuous Integration,CI):代码合并.构建.部署.测试都在一起,不断地执行这个过程,并对结果反馈.持续部署(Continuous Deployme ...

  5. Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!)

    通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上 ...

  6. 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  7. Jenkins集成Docker镜像实现自动发布

    1. 思路&流程 Jenkins集成Docker镜像实现自动发布与Jenkins发布mavne项目思路一样总体流程 为:Jenkins 拉去远端源码 -- gitl实现应用打包 -- jenk ...

  8. 在windows下使用jenkins部署docker容器

    在windows下使用jenkins部署docker容器最近在学习jenkins,docker部署来实现集成部署,所以想在windows下面实现测试,但是发现在windows下docker支持不是很好 ...

  9. 基于Jenkins,docker实现自动化部署(持续交互)

      前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此 ...

随机推荐

  1. 如果在 Windows 10 家庭版中使用「远程桌面」

    远程桌面是 Windows 系统下原生.跨平台的的远程控制功能,拥有微软官方提供的各平台客户端,就可以让你在远程轻松帮助别人或者控制自己的 PC,而从 Windows 7 以来家庭版都不支持桌面功能

  2. MySql 索引优化实例

    查询语句 SELECT customer_id,title,content FROM `product_comment` WHERE audit_status=1 AND product_id=199 ...

  3. 在Docker中安装配置Oracle11g并实现数据持久化

    1.拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 镜像详情:https://dev.aliyun.com/ ...

  4. Delphi获取本机的MAC地址

    Delphi获取本机的MAC地址: uses   NB30; function GetAdaPterInfo(lana: Char): string; var   Adapter: TAdapterS ...

  5. gcc 工作流程

    gcc常用参数: 1:-v/--version 2:-I :指定头文件包含路径 3:-c :将汇编文件生成一个二级制文件,得到.o文件 4:-o :指定生产的文件名 5:-g :gdb调试的时候需要加 ...

  6. 避免crontab输出日志

    在cron的自动执行语句后加上> /dev/null 2>&1 例:4 3 * * * /usr/bin/a.sh > /dev/null 2>&1这样就OK拉 ...

  7. es6(11)--Proxy,Reflect

    //Proxy,Reflect { let obj={ time:'2018-06-25', name:'net', _r:123 }; let monitor = new Proxy(obj,{ / ...

  8. flask 之cbv ,flash闪现,Flask_Session,WTForms - MoudelForm

    1.CBV : from flask import views  class LoginView(views.MethodView):  def get(self):   return     def ...

  9. [Unity动画]04.Avatar Mask

    参考链接: https://www.cnblogs.com/hammerc/p/4832637.html Avatar Mask主要用于动画层融合.例如说,边跑边举起东西,这个实际上就是下半身播放跑步 ...

  10. 温故而知新-robots.txt语法教程

    用几个最常见的情况,直接举例说明:   1. 允许所有SE收录本站:robots.txt为空就可以,什么都不要写.   2. 禁止所有SE收录网站的某些目录: User-agent: * Disall ...