Docker安装参考官网即可,最权威。
Jenkins配置:(参考文章https://blog.51cto.com/ganbing/2085769)
1、生成jenkins镜像
这里要注意的是两点:
(1)参考文章中的基础镜像太老了,一定更要使用官方最新(长期支持版或每周发布版),否则按照jenkins插件时会提示因jenkins版本太久而不能使用。官方镜像在这里https://hub.docker.com/r/jenkins/jenkins/。
(2)参考文章中,RUN后面的源已经不能使用,搜了很多资料终于找到解决办法。Dockerfile如下:
FROM jenkins/jenkins:lts
USER root
RUN echo "deb [check-valid-until=no] http://cdn-fastly.deb.debian.org/debian jessie main" > /etc/apt/sources.list.d/jessie.list
RUN echo "deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
RUN sed -i '/deb http://deb.debian.org/debian jessie-updates main/d' /etc/apt/sources.list
RUN apt-get update && apt-get install git --assume-yes
镜像生产后,使用docker images命令可以看到结果如下:
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins lts 95bf220e341a 2 weeks ago 566MB
2、运行jenkins容器
命令入下:
docker run -d
--name jenkins
-p 8080:8080
-v /var/jenkins_home/:/var/jenkins_home
-v /opt/apache-maven-3.6.1:/opt/maven
-v /opt/jdk1.8.0_191:/opt/jdk
-v ~/.ssh:/root/.ssh
jenkins:v1
容器运行成功后,使用docker ps可以看到结果如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4d6b15c068ce jenkins:v1 "/sbin/tini -- /usr/…" About an hour ago Up 12 minutes 0.0.0.0:8080->8080/tcp, 50000/tcp jenkins
3、登录并修改源
Jenkins自带的源会导致很多插件安装失败,新版的Jenkins允许先设置源,然后在进入推荐插件安装界面。修改源的方法如下:
在浏览器打开localhost:8080,然后依次点击Manager Jenkins->Manage Plugin->Advance,在最下面的URL处输入新的源,我的是https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。
4、汉化并安装插件
这里顺序很重要:
(1)首先安装汉化插件:还是进入Manage Plugin,然后在Available选项卡中搜Locale和"中文”,然后把出现的插件安装好。
(2)然后进入Manager Jenkins->Configure System,找到Locale并在输入zh_CN,同时勾选下面的可选框。
(3)最后先点击”apply“,接着点击”save“,此时页面会刷新,然后自动进入推荐插件安装页面,安装推荐的插件即可。
5、插件安装失败
对安装失败的插件,根据插件名字按照第4步安装汉化插件的方式一样安装即可。
6、重启Jenkins使插件生效
所有插件安装完成后,在命令行执行"docker restart 容器ID"即可重启Jenkins。
可能遇到的问题:
1、登录失败
现象:对于比较老版本的jenkins,可能出现明明输入的是正确的用户名和密码,就是登录不来的情况。
解决办法:有两种办法,一是更改Jenkins的登录安全等级,这样无需密码即可登录(不推荐)。方法参照参考链接中的获赞最多的答案;二是重置密码为"test"。
方法是打开/var/jenkins_home/users/admin/config.xml,找到passwordHash所在的一行,替换改行为
<passwordHash>#jbcrypt:10$razd3L1aXndFfBNHO95aj.IVrFydsxkcQCcLmujmFQzll3hcUrY7S</passwordHash>
(参考:https://stackoverflow.com/questions/6988849/how-to-reset-jenkins-security-settings-from-the-command-line)