在容器中运行Jenkins部署主机中的docker应用

原来的部署方式

原来我用的部署方案是这样的:

在主机上安装Jenkins,然后在Jenkins的任务中运行docker命令,在主机里部署应用。

基本逻辑如下:

  • Jenkins任务通过git更新代码
  • 运行docker build,从最新的代码中生成一个image
  • 用docker run运行这个image完成一个应用实例的部署

相对来说还是挺简单的。

但是这次整的一个新的服务器,我实在不想再安装Jenkins了,你们懂的,JAVA应用的安装都是很麻烦的。就打算pull一个Jenkins的image来放docker里跑。那么问题来了:如何让一个跑在container里的Jenkins把应用部署到host环境上?总不能在container里创建新的container吧。

解决方案

解决方案就是fabric,本质上是ssh。

方法如下:

  • build一个Jenkins image,在其中加入fabric
  • 运行这个container的时候加入host机
  • 在fabfile.py里加入一个role为host机用户
  • 在fabfile.py用这个用户运行部署脚本
  • 在Jenkins任务里调用这个fabric部署脚本

参考如下Jenkins Dockerfile,用的基础image是alpine版,这个比较小。

repositories里放的是国内镜像源,比原配的源快很多。

这个Dockerfile主要做的事情就是安装fabric。

FROM jenkins:
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了使用Docker部署Jenkins,可以使用docker-compose文件来配置Jenkins容器。在docker-compose文件,可以指定Jenkins的镜像、卷以及其他相关的配置信息。在配置文件,可以指定Jenkins的镜像版本、数据卷的映射路径以及与Docker守护进程通信的socket路径。 一个示例的docker-compose文件如下所示: version: '3.1' services: jenkins: image: jenkins/jenkins:lts volumes: - /data/jenkins/:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock ... 这个配置文件指定了使用Jenkins的最新稳定版镜像,同时将Jenkins的数据目录映射到主机的/data/jenkins/路径下。此外,还将Docker守护进程的socket映射到Jenkins容器以便与Docker进行通信。其他的配置信息可以根据具体需求进行调整和添加。 值得注意的是,还有其他的方法可以使用Ansible和Docker部署Jenkins容器。可以使用Ansible的Docker模块来创建和管理Docker容器,同时使用Jenkins的Ansible插件来自动化Jenkins的安装和配置。这样可以更加灵活地管理Jenkins容器,并且可以将Jenkins容器部署到多个主机上。 希望以上信息对您有所帮助。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [docker-compose部署配置jenkins的详细教程](https://download.csdn.net/download/weixin_38748556/14048510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Ansible-Docker-Jenkins:使用Docker-Jenkins https部署Jenkins Docker容器的角色](https://download.csdn.net/download/weixin_42098759/16013274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值