Docker 安装 Jenkins , 并解决初始安装插件失败
安装 Jenkins 后,初始化下载插件总是失败,导致安装不成功,重试好几次都是卡在安装插件那。
这里记录下 Docker 下怎么安装 Jenkins ,并解决初始安装插件失败问题。
安装插件失败,其实是拉取了官方的 Jenkins 镜像,然后在初始化安装插件时,会从国外的网站去获取,导致安装非常缓慢,或者安装失败。最好的解决方案时拉取 Jenkins 中文社区 提供的 Jenkins 镜像,即可解决。Jenkins 中文官网 :https://www.jenkins.io/zh/
安装步骤
获取镜像
docker pull jenkinszh/jenkins-zh:latest
Docker官方镜像仓库 :https://hub.docker.com/
从这里找到 jenkins 中文镜像
设置 jenkins 容器挂载目录
Jenkins 容器启动后,会产生安装配置文件,需要把这些文件的生成地址改为,linux服务器上的目录。
目的:日后修改配置容易寻找。
创建 Jenkins 生成目录 mkdir /home/jenkins_home
目录授权 chmod 777 /home/jenkins_home 不授权启动后无法生成文件
启动命令
docker run -d -p 8085:8080 -p 50000:50000 --name myjenkins -v /home/jenkins_home/:/var/jenkins_home jenkinszh/jenkins-zh:latest
命令解释:
run 运行容器
-d 后台运行
-p linux服务器端口 与 Docker 容器端口映射
--name 自定义容器别名
-v linux服务器目录 与 Docker 容器目录挂载
最后名跟的时 拉取的镜像名和版本
注意:8085 是访问端口,只要没占用的都可以用。8080不可更改
-p 50000:50000 不可更改。
/home/jenkins_home/ 本地的生成目录,可以自定义,与上一步创建并授权的目录一致即可
/var/jenkins_home Docker 容器目录,不可更改。
访问
服务器ip + 自定义端口 例: 192.168.0.200:8085
初始密码
docker ps 获取当前运行容器的id
docker logs 容器的id
在 logs 日志里面即可看到,类似这样
插件安装
用中文社区提供的 Jenkins 镜像 无需设置,直接安装即可,速度飞快。
附-官方镜像安装插件失败分析
以上面 Jenkins 挂载的目录为例
在 jenkins_home 的目录下,hudson.model.UpdateCenter.xml 这个文件定义了 插件拉取的配置地址,默认的地址可以直接访问,你会发现,他连接的是 https://www.google.com/, 由于墙的原因,这个地址一直访问失败。
在 /jenkins_home/updates 目录下的 default.json 文件内容,就是 hudson.model.UpdateCenter.xml 定义的插件拉取的配置地址 里面的内容。即使你通过其他博客 修改了 default.json 的文件内容,当你再次 启动的时候,会立马还原过来,所以怎么修改都还不会生效。
而 Jenkins 中文社区提供的镜像,这块已经处理好了,插件拉取的配置地址 已经换为国内镜像地址,所以插件下载非常快。
Jenkins 中文社区 关于插件拉取的解释:
https://community.jenkins-zh.cn/t/jenkins/26
https://jenkins-zh.cn/wechat/articles/2019/11/2019-11-11-update-center-mirror-announcement/
建议了解一下
Docker 安装 Jenkins , 并解决初始安装插件失败的更多相关文章
- 在 docker 安装 jenkins (解决无法访问jenkins的错误)
前提:安装好docker. 拉取Jenkins镜像: python docker pull jenkins 遇到错误:Docker:TLS handshake timeout错误 原因:国外,网速慢, ...
- Mac 下安装 ruby 环境解决 brew 安装 yarn 问题
在brew安装yarn提示 ruby的版本过低.在网上搜了一下发现 1. mac下自带的ruby 在 system 目录下 2. 其实可以用brew安装一个ruby brew install ruby ...
- 解决Linux 安装python3 .5 解决pip 安装无法成功问题ssl安全拦截无法pip安装库问题
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not avail ...
- Jenkins持续集成介绍及插件安装版本更新演示(一)--技术流ken
Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins功能包括: ...
- 在k8s上安装Jenkins及常见问题
持续集成和部署是DevOps的重要组成部分,Jenkins是一款非常流行的持续集成和部署工具,最近试验了一下Jenkins,发现它是我一段时间以来用过的工具中最复杂的.一个可能的原因是它需要与各种其它 ...
- 阿里云上如何利用yum安装jenkins
一. 安装jdk 确保安装jenkins前jdk已经安装,如何安装见<如何在阿里云上部署war包到tomcat服务器> 二. 安装jenkins 使用以下命令安装jenkins: wget ...
- 【linux】【jenkins】自动化部署一 安装jenkins及Jenkins工作目录迁移
系统环境:Centos7 https://jenkins.io/zh/download/ 下载对应系统的jenkins 一.安装jdk8.0 jenkins安装需要jdk8or11,根据jenkins ...
- Jenkins持续集成_01_Mac安装配置
前言 Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.在自动化测试中,用来持续集成,跑定时任务进行定时自动化监测.更详细介绍可查看jenkins官网: ...
- Window - 安装 Jenkins
安装方式 war 包放 Tomcat 下 直接安装 jenkins.msi 环境准备 安装 jdk.tomcat,参考:https://www.cnblogs.com/poloyy/p/1326781 ...
随机推荐
- iOS isEqual
如何重写 hash 方法 一个合理的 hash 方法要尽量让 hash 表中的元素均匀分布,来保证较高的查询性能. 如果两个对象可以被视为同一个对象,那么他们的 hash 值要一样. mattt 在文 ...
- python ——钟表
1.表盘 from turtle import * from datetime import * def Skip(step):#表盘不连续地画图 penup() forward(step) pend ...
- Q - 迷宫问题 POJ - 3984(BFS / DFS + 记录路径)
Q - 迷宫问题 POJ - 3984 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, ...
- Java多线程并发工具类-信号量Semaphore对象讲解
Java多线程并发工具类-Semaphore对象讲解 通过前面的学习,我们已经知道了Java多线程并发场景中使用比较多的两个工具类:做加法的CycliBarrier对象以及做减法的CountDownL ...
- PTA | 1010 一元多项式求导 (25分)
设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式: ...
- Nagios监控服务
Nagios监控服务 案例1:常用系统监控命令 案例2:搭建nagios监控服务器 案例3:配置文件及插件使用 案例4:监控远程主机的公有数据 案例5:监控远程主机的私有数据 1 案例1:常用系统监控 ...
- vue技术栈进阶(01.使用vue-cli3创建项目)
使用vue-cli3创建一个项目 1) 使用Vue UI创建.管理项目 1.安装依赖的脚手架包. 2.命令行中输入vue ui 即可以打开可视化界面 可视化界面: 2)项目结构目录整理 3)基本配置 ...
- go 编译protobuf
D:\project\bin\protoc.exe --plugin=protoc-gen-go=%GOPATH%\bin\protoc-gen-go.exe --go_out=. *.proto 编 ...
- Mac 系统root
没错,你没看错,就是root mac系统安装件的时候,你有没有遇到过这种情况 总之,就是安装不上软件,肿么办? 网上解觉办法是: 进入系统偏好设置,设置为允许任何人,可是进去后这样: 别着急,打开命令 ...
- 28.3 api--date 日期 (日期获取、格式化)
/* * Date: 表示特定的瞬间,精确到毫秒,他可以通过方法来设定自己所表示的时间,可以表示任意的时间 * System.currentTimeMillis():返回的是当前系统时间,1970-1 ...