利用Dockerfile构建jenkins-jdk-maven的新镜像

分类:虚拟化    发布时间:2020-03-01 22:36:25
1、拉取docker官方的Jenkins最新镜像
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压力

创建视图空间和相关项目





标签: Docker jenkins

阅读(170)┆ 评论(0) ┆ (0) ┆ 返回博客首页


发表我的评论

欢迎您: | 退出登录


文章评论