1. 拉镜像

和其他的部署的镜像的方式一样,通常是直接使用docker search jenkins

然后直接docker pull jenkins

此时,在安装插件的时候发现插件都安装失败,提示jenkins版本太低

正确的安装方式是pull的时候直接带上版本号,使用docker pull jenkins/jenkins:lts

2. 部署jenkins

  • 默认使用的端口号是808050000
  • 默认数据目录为:/var/jenkins_home需要映射出来持久化
  • 如果需要把jenkins单独映射一级目录,则启动时添加:JENKINS_OPTS: '--prefix=/jenkins'
  • 修改时区问题,则启动时添加:JAVA_OPTS=-Duser.timezone=Asia/Shanghai

因此使用docker部署的话,可以执行以下脚本:

docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /jenkins_data/:/var/jenkins_home -e JENKINS_OPTS="--prefix=/jenkins" JAVA_OPTS=-Duser.timezone=Asia/Shanghai

使用docker-compose时,xml为:

jenkins:
image: docker.io/jenkins/jenkins:lts
ports:
- 8080:8080
- 50000:50000
restart: always
volumes:
- /jenkins_data/:/var/jenkins_home/
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
environment:
JENKINS_OPTS: '--prefix=/jenkins'
JAVA_OPTS: '-Duser.timezone=Asia/Shanghai'

3. 配置nginx转发

配置转发时,最好是把jenkins目录单独映射出来,转发时需要带上实际的请求头信息,不然会报脚本错误:

Mixed Content: The page at ‘https://XXX’ was loaded over HTTPS, but requested an insecure

nginx配置为:

location /jenkins/ {
proxy_pass http://jenkins:8080/jenkins/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

配置完成后基本上就可以访问了

4.插件选择

如果是第一次用,在部署时选择默认即可,后续在按需选择

常用的插件有以下几种:

  • Git plugin
  • Gitee Plugin #和码云中集成
  • GitHub plugin
  • Maven Integration plugin
  • Publish Over SSH
  • Pipeline
  • NodeJS Plugin

    ...

5.构建时注意事项

  • 默认安装后无法找到maven或者版本不对

    jenkins - 系统管理 - 全局工具配置 - maven -新增maven安装新的maven,在构建时使用新配置的maven即可

  • gitee插件配置

    Gitee 帮助中心 / 第三方服务集成 / 帮助详情 / Jenkins 插件

  • 如何把构建的结果拷贝到目标机器

    如果是拷贝到同一个宿主机的环境,则可以把宿主机的目录也映射到jenkins中

    如果是网络可联通的环境,则使用Publish Over SSH插件,通过插件或者shell的scp拷贝过去

基于docker部署jenkins的更多相关文章

  1. Ubuntu系统下基于docker部署Jenkins环境

    本文是在ubuntu环境下安装jenkins,jenkins运行在docker容器中, 至于docker如何安装,请参考https://www.cnblogs.com/xingyunqiu/p/115 ...

  2. [系统集成] 基于Kubernetes 部署 jenkins 并动态分配资源

    基于kubernetes 部署 jenkins master 比较简单,难点是为 jenkins 动态分配资源.基于kubernetes 为 jenkins 动态分配资源需要实现下述功能: 资源分配: ...

  3. 基于Docker部署nodejs应用

    基于Docker部署nodejs应用 背景 公司基于Vue.js的项目最近需要部署到云端,因此需要先行在公司内部Docker环境下验证相关技术,因而有本文之前提. 本文展示在Docker容器中,应用部 ...

  4. docker部署Jenkins,以及在Jenkins中使用宿主机的docker/docker-compose命令

    使用最新的官方镜像jenkins/jenkins 第一次使用的docker部署jenkins的时候,出现了两个问题: 1.因为用户权限问题挂载/home/jenkins/data到/var/jenki ...

  5. 基于Docker部署ETCD集群

    基于Docker部署ETCD集群 关于ETCD要不要使用TLS? 首先TLS的目的是为了鉴权为了防止别人任意的连接上你的etcd集群.其实意思就是说如果你要放到公网上的ETCD集群,并开放端口,我建议 ...

  6. 基于docker构建jenkins和svn服务(转)

    码农们很定都知道svn的重要性,机器坏掉丢代码的惨痛教训想必很多人都有. jenkins可能很多人都不了解.这是一个持续集成的工具,在敏捷开发领域很流行:跟svn结合可以实现定期build.check ...

  7. docker 部署 jenkins

    建议使用的Docker映像是jenkinsci/blueocean image(来自 the Docker Hub repository). 该镜像包含当前的长期支持 (LTS) 的Jenkins版本 ...

  8. ubuntu 中安装jenkins,基于docker运行jenkins

     本文是在ubuntu环境下安装jenkins,jenkins运行在docker容器中,至于docker如何安装,本文不再描述,大家可以上网查询下,如何安装docker,下面先放上一个使用jenkin ...

  9. 基于Docker构建Jenkins CI平台

    1.部署gitlab 1.1 部署gitlab docker run -d \ --name gitlab \ -p 8443:443 \ -p 9999:80 \ -p 9998:22 \ -v $ ...

随机推荐

  1. cinder-volume服务上报自己的状态给cinder-scheduler的rpc通信代码分析

    以juno版本为基础,主要从消息的生产者-消费者模型及rpc client/server模型来分析cinder-volume是如何跟cinder-scheduler服务进行rpc通信的 1.cinde ...

  2. python 递归删除空文件夹

    Python如何递归删除空文件夹 1.Python如何递归删除空文件夹,这个问题很常见.但大多数人的解决办法都是自己实现递归函数解决这个问题,其实根本不用那么麻烦.Python中的os.walk提供了 ...

  3. Java数据结构——顺序表

    一个线性表是由n(n≥0)个数据元素所构成的有限序列. 线性表逻辑地表示为:(a0,a1,…,an-1).其中,n为线性表的长度,n=0时为空表.i为ai在线性表中的位序号. 存储结构:1.顺序存储, ...

  4. 全局api 2020/8/14

    // 注意:每次调用 $.get() 或 $.post() 或 $.ajax() 的时候, // 会先调用 ajaxPrefilter 这个函数 // 在这个函数中,可以拿到我们给Ajax提供的配置对 ...

  5. 《MySQL数据库》MySQL备份恢复

    前言 MySQL数据库最重要的部分就是数据,所以保证数据不被损坏尤为重要,大家都知道911事件,当时非常多的数据丢失,导致经济混乱.接下来我们就来讲讲MySQL是如何保障数据完整,应对特殊情况,如何恢 ...

  6. Redis秒杀实战-微信抢红包-秒杀库存,附案例源码(Jmeter压测)

    导读 前二天我写了一篇,Redis高级项目实战(点我直达),SpringBoot整合Redis附源码(点我直达),今天我们来做一下Redis秒杀系统的设计.当然啦,Redis基础知识还不过关的,先去加 ...

  7. 30年技术积累,技术流RTC如何成为视频直播领域的黑马?

    摘要:视频业务链的背后,本质是一张视频处理和分发网络.5G+云+AI时代下,实时音视频必然会步入到一个全新的发展期. 2020年这场肆虐全球的新冠疫情让很多企业重新审视自己对数字化的认识,正如 “大潮 ...

  8. Python错误,pip安装包或更新时因超时而报错误

    报错原因 想要使用pip,结果出下以下警告: 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高 ...

  9. 关于SpringBoot集成JDBCTemplate的RowMapper问题

    JdbcTemplate 是Spring提供的一套JDBC模板框架,利用AOP 技术来解决直接使用JDBC时大量重复代码的问题.JdbcTemplate虽然没有MyBatis 那么灵活,但是直接使用J ...

  10. Unity 内嵌网页

    uniwebview 官网 http://uniwebview.onevcat.com/reference/class_uni_web_view.html http://uniwebview.onev ...