docker pull jenkins/jenkins:lts:
2、查看拉取结果
# docker images
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZ
jenkins/jenkins lts e54fbc2a5085 39 hours ago 617MB
3、创建jenkins_home目录
mkdir /usr/jenkins_home
4、在home,下载apache-maven-3.6.0-bin.tar.gz
cd ~
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
5、创建Dockerfile
vim Dockerfile
#
# MAINTAINER Howard.Ma <howardma@xxxxx.com>
# DOCKER-VERSION 1.12.6
#
# Docker base docker.io/jenkins : Dockerfile for building Jenkins_Maven images
#
# 必须是第一条非注释指令
FROM jenkins/jenkins:lts
# 指定镜像的作者信息,包括镜像的所有者和联系信息
MAINTAINER Howard.Ma <howadma@xxxxx.com>
# 指定容器以什么用户的身份来运行
USER root
# 在容器内部设置工作目录,在构建中为后续的指令指定工作目录
WORKDIR /var/maven3
# 将文件或目录复制到使用Dockerfile构建的镜像中,注意ADD指令自带解压缩功能
ADD apache-maven-3.6.0-bin.tar.gz /var/maven3
# 用来设置环境变量,作用于构建构过程或运行过程中
ENV MAVEN_HOME=/var/maven3/apache-maven-3.6.0
#ENV MAVEN_OPTS=[-Xms256m -Xmx512m]
ENV PATH=$PATH:$MAVEN_HOME/bin
# 运行指令
RUN echo "MAVEN_HOME=/var/maven3/apache-maven-3.6.0\nMAVEN_OPTS=-Xms256m -Xmx512m\nPATH=$PATH:$MAVEN_HOME/bin" >> /etc/profile
保存
:wq
6、构建jenkins-java-maven:1.0.0镜像
# docker build -t jenkins-java-maven:1.0.0 .
注意不要忘记最后的点(.)
构建成功如下所示:
---> Running in b00e7106cf87
Removing intermediate container b00e7106cf87
---> 48e56886ed83
Successfully built 48e56886ed83
Successfully tagged jenkins-java-maven:1.0.0
7、查看生成的镜像情况
# docker images
如下所示:
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins-java-maven 1.0.0 48e56886ed83 26 seconds ago 628MB
8、启动镜像
启动前需要对/usr/jenkins_home目录分配权限,如下:
# chown -R 1000 jenkins_home/
启动镜像
docker run -d --privileged=true --name jenkins_maven -p 8080:8080 -p 50000:50000 -v /usr/jenkins_home:/var/jenkins_home jenkins-java-maven:1.0.0
出现以下结果
9d0443587fbfdde7be76f3654a3675bc2c2c9485f9951c9d4bfb9109ede6362a
查看启动日志
docker logs 9d044
得到初始密码,并看到启动完成信息
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
66ce0c54b87345cc8c3df45154d373e0
9、查看容器内环境设置情况是否符合要求
进入容器内部
docker exec -it jenkins_maven /bin/bash
然招执行mvn --version,出现以下结果,表示正常
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /var/maven3/apache-maven-3.6.3
Java version: 1.8.0_242, vendor: Oracle Corporation, runtime: /usr/local/openjdk-8/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1062.el7.x86_64", arch: "amd64", family: "unix"
如上所示,说明达到我们的构建要求,即成功基于官方Jenkins镜像构建了具有Maven服务功能的自制镜像jenkins-java-maven:1.0.0,最后exit退出容器即可。
至此阿里云服务器部分配置结束.
10、Jenkins使用:
访问ip:8080测试,密码为刚才得到的初始密码如果页面出现该Jenkins实例似乎已离线的提示,请参考以下方法解决
解决方法:
1) 修改/var/lib/jenkins/updates/default.json
jenkins在下载插件之前会先检查网络连接,其会读取这个文件中的网址。默认是访问谷歌,这就很坑了,服务器网络又不能FQ,肯定监测失败呀,不得不说jenkins的开发者脑子锈了,所以将文件中的google改为www.baidu.com即可。
2) 修改/var/lib/jenkins/hudson.model.UpdateCenter.xml
该文件为jenkins下载插件的源地址,改地址默认jenkins默认为:https://updates.jenkins.io/update-center.json,就是因为https的问题,此处我们将其改为http即可.
其他国内备用地址(也可以选择使用):
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
http://mirror.esuni.jp/jenkins/updates/update-center.json
重启jenkins服务
输入网址http://localhost:8080,重新操作即可开始联网安装推荐插件.
推荐插件安装完成后,设置用户,或者使用当前admin用户,然后开始使用jenkins
安装常用插件
Maven Integration # 用于构建一个maven项目
Extended Choice Parameter # 参数化构建插件
Git Parameter # 参数化构建插件
kubernetes
kubernetes-deploy
设置环境git、maven、jdk、邮件发送等
更改admin的初始密码,添加新用户、权限设置等
master--slave模式,根据实际情况使用用多个slave来构建项目,减少master压力
创建视图空间和相关项目