基于docker搭建jenkins
一、概述
Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎。Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

二、安装
环境说明
操作系统:centos 7.6
docker版本:19.03.12
ip地址:192.168.31.145
配置:2核4g
下载镜像
docker pull jenkins/jenkins:lts
注意:这个是长期技术支持版
封装镜像
由于默认没有maven,因此我需要封装一下。
新建目录/opt/myjenkins/,目录结构如下:
./
├── dockerfile
└── settings.xml
dockerfile
FROM jenkins/jenkins:lts
ADD settings.xml /
USER root
RUN apt-get update && \
apt-get install -y maven ansible rsync && \
apt-get clean all && \
mv /settings.xml /etc/maven/settings.xml
说明:
USER root 表示以root用户运行,这样jenkins执行某些任务时,不会出现没有权限的情况。
settings.xml
这个是maven配置文件,去掉了注释部分。增加阿里云maven仓库
<?xml version="1.0" encoding="UTF-8"?>
<settings
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers></servers>
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles></profiles>
</settings>
注意:配置阿里云maven仓库,可以很快速的下载一些jar包。
构建并运行
docker build -t myjenkins:1 .
mkdir -p /data/jenkins/data /data/jenkins/maven
docker run -d \
--restart=always \
--name=jenkins \
-u root \
-p 8080:8080 -p 50000:50000 \
-v /data/jenkins/data:/var/jenkins_home \
-v /data/jenkins/maven/m2:/root/.m2 \
myjenkins:1
说明:
/data/jenkins/data 用来保存jenkins数据目录
/data/jenkins/maven/m2 用来保存构建maven项目时,从aliyun下载的一些jar包。
查看日志
docker logs -f jenkins
如果出现
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
表示启动完成了
配置镜像加速
推荐清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
修改文件
vi /data/jenkins/data/hudson.model.UpdateCenter.xml
完整内容如下:
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
重启jenkins
docker restart jenkins
三、nginx发布jenkins
安装nginx
yum install -y nginx
mkdir -p /data/log/nginx
nginx
配置文件
vi /etc/nginx/conf.d/jenkins.aliyun.com.conf
内容如下:
server {
listen 80;
server_name jenkins.aliyun.com;
charset utf-8;
access_log /data/log/nginx/jenkins.aliyun.com.access.log main;
error_log /data/log/nginx/jenkins.aliyun.com.error.log;
client_max_body_size 3072m;
location / {
index index.html index.htm;
proxy_pass http://192.168.31.145:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
重新加载配置
nginx -s reload
四、访问页面
http://jenkins.aliyun.com

注意:如果我们不配置镜像加速,那么很有可能会出现: Jenkins 一直卡在 启动界面 Please wait while Jenkins is getting ready to work

安装推荐插件

创建用户

实例配置

注意:这里一定要配置为域名。
登录之后,效果如下:

五、docker命令
如果需要在jenkins里面,执行docker命令,请参考链接:
https://www.cnblogs.com/xiao987334176/p/13470724.html
本文参考链接:
https://blog.csdn.net/qiuyeyijian/article/details/104507440
基于docker搭建jenkins的更多相关文章
- 基于Docker 搭建 Jenkins
⒈下载镜像 要使用最新的LTS: docker pull jenkins/jenkins:lts 要使用最新的每周 docker pull jenkins/jenkins ⒉运行 docker run ...
- 基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作
一.各个组件的功能描述: Docker 是一个开源的应用容器引擎. Jenkis 是一个开源自动化服务器. (1).负责监控gitlab代码.gitlab中配置文件的变动: (2).负责执行镜像文件的 ...
- 基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作(续)---Harbor的安装
前期安装文档:https://www.cnblogs.com/lq-93/p/11828626.html Harbor的作用: 开发提交代码至gitlab容器中,Jenkins拉取代码构建镜像 ...
- 基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作(续)
说明:前期的安装,请转向https://www.cnblogs.com/lq-93/p/11824039.html (4).查看gitlab镜像是否启动成功 docker inspect 容器id ...
- Docker搭建Jenkins+Maven/Gradle——代码自动化运维部署平台(二)
一.简介 1.Jenkins 概述: Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins ...
- 基于docker搭建开源扫描器——伏羲
基于docker搭建开源扫描器——伏羲 1.简介 项目地址 伏羲是一款开源的安全检测工具,适用于中小型企业对企业内部进行安全检测和资产统计. 功能一览: 基于插件的漏洞扫描功能(类似于巡风) 漏洞管理 ...
- 基于Docker搭建大数据集群(六)Hive搭建
基于Docker搭建大数据集群(六)Hive搭建 前言 之前搭建的都是1.x版本,这次搭建的是hive3.1.2版本的..还是有一点细节不一样的 Hive现在解析引擎可以选择spark,我是用spar ...
- 基于Docker搭建大数据集群(七)Hbase部署
基于Docker搭建大数据集群(七)Hbase搭建 一.安装包准备 Hbase官网下载 微云下载 | 在 tar 目录下 二.版本兼容 三.角色分配 节点 Master Regionserver cl ...
- 基于Docker搭建大数据集群(一)Docker环境部署
本篇文章是基于Docker搭建大数据集群系列的开篇之作 主要内容 docker搭建 docker部署CentOS 容器免密钥通信 容器保存成镜像 docker镜像发布 环境 Linux 7.6 一.D ...
随机推荐
- P4074 [WC2013]糖果公园 树上莫队带修改
题目链接 Candyland 有一座糖果公园,公园里不仅有美丽的风景.好玩的游乐项目,还有许多免费糖果的发放点,这引来了许多贪吃的小朋友来糖果公园游玩. 糖果公园的结构十分奇特,它由 nn 个游览点构 ...
- codeforces 632F. Magic Matrix (最小生成树)
You're given a matrix A of size n × n. Let's call the matrix with nonnegative elements magic if it i ...
- hdu5317 RGCDQ
Problem Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to find more an ...
- poj 2566 Bound Found 尺取法
一.首先介绍一下什么叫尺取 过程大致分为四步: 1.初始化左右端点,即先找到一个满足条件的序列. 2.在满足条件的基础上不断扩大右端点. 3.如果第二步无法满足条件则到第四步,否则更新结果. 4.扩大 ...
- 吉哥系列故事――恨7不成妻 HDU - 4507
题目: 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 7+7=7*2 ...
- 2017, X Samara Regional Intercollegiate Programming Contest B.Pursuing the Happiness (string函数)
题意:给你一个字符串,可以交换两个字符的位置,问操作后能否在字符串中找到子串\("happiness"\),如果不能,输出交换的两个位置. 题解:这题其实用string中的find ...
- 记一次基于springboot+aop实现日志记录实战
1. 为什么要记录日志 好处: a. 可以对一些重要功能进行记录,方便以后跟踪是谁操作此功能的. b. 在操作某些功能时可能会发生异常,但每次出现异常我们想定位日志都要去服务器查看我们的日志.有了日志 ...
- 接口测试框架Requests
目录 Requests Requests安装 Requests常见接口请求方法构造 请求目标构造 header构造 cookie 构造请求体 Get Query请求 Form请求参数 JSON请求体构 ...
- 关于free和delete的使用
上一篇篇幅太长,这里再区分free和delete的用法. 两个同时存在是有它的原因的,我们前面说过,free是函数,它只释放内存,但不会调用析构函数,如果用free去释放new申请的空间,会因为无法调 ...
- List遍历以及剔除指定数据
一.list三种遍历方式 1.for循环 List<String> list = new ArrayList<String>(); list.add("A" ...