基于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 ...
随机推荐
- TcaplusDB 10周年 风雨兼程破浪行 自研存储见成长
从找不到需求险些被叫停,到支撑亿级DAU的数据库行业标杆,腾讯云数据库TcaplusDB在风雨中走过了整整10年.辉映日月破风浪,十年一剑破九天.百万行代码就像淙淙流淌的数据溪流,终于在十年后汇成不可 ...
- 2019牛客暑期多校训练营(第七场)F-Energy stones(思维+树状数组)
>传送门< 题意:有n块能量石,每秒钟会增加Li的能量,但是一旦增长到了Ci它就不会增长了,它初始的能量为Ei. 现在有若干个时刻ti,会选择下标在[Si,Ti]的能量石吸取它们的能量,这 ...
- 【noi 2.2_7891】一元三次方程求解(二分枚举+输出程序运行时间)
对于noi上的题有2种解法: 1.数据很小(N=100),可以直接打for循环枚举和判断. 2.不会"三分",便用二分.利用"两根相差>=1"和 f(x1 ...
- Ubuntu中Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend)问题的解决
参考博客:https://blog.csdn.net/shimadear/article/details/90598646 问题描述: 解决方法: 第一种情况: 进程中存在与apt相关的正在运行的进程 ...
- ZYB loves Xor I HDU - 5269 字典树
题意: T组样例,给你n个数.你要找出来这n个数中任意两个数的二进制位中 最低位不同 的位置(假设是k),然后让所有2^k加起来就是结果 什么意思? 例如4 和 2 4的二进制是(100),2的二 ...
- WPF 之路由事件和附加事件(六)
一.消息驱动与直接事件模型 事件的前身是消息(Message).Windows 是消息驱动的系统,运行其上的程序也遵循这个原则.消息的本质就是一条数据,这条消息里面包含着消息的类别,必要的时候还记 ...
- 【译】Async/Await(五)—— Executors and Wakers
原文标题:Async/Await 原文链接:https://os.phil-opp.com/async-await/#multitasking 公众号: Rust 碎碎念 翻译 by: Praying ...
- Ubuntu——常用命令
一.进入文件夹 1.cd .. # 进入上一个文件夹 2.cd ../.. # 进入上两个文件夹 3.cd - # 去到进入当前文件夹之前的那个文件夹 二.复制文件 cp 目标文件 复制文件名 三.移 ...
- 字节笔试题 leetcode 69. x 的平方根
更多精彩文章请关注公众号:TanLiuYi00 题目 解题思路 题目要求非负整数 x 的平方根,相当于求函数 y = √x 中 y 的值. 函数 y = √x 图像如下: 从上图中,可以看出函数是单 ...
- PyQt5 问题集
PyQt5中遇到的一些问题 1.多线程中界面异步刷新 我这里需要给界面动态添加新的控件,但是多线程中似乎并不能直接更新页面? 对于逻辑和界面分离的情况,使用自定义信号的方式进行页面控件的动态添加.注意 ...