Kubernetes部署Jenkins
1. 构建tomcat镜像
//目录结构
[root@master ~]# tree /tomcat/
/tomcat/
├── Dockerfile
└── files
├── apache-tomcat-9.0.56.tar.gz
├── index.jsp
├── install.sh
├── jenkins-2.303.1.war
└── jenkins-2.303.2.war
1 directory, 6 files
//编写dockerfile文件
[root@master ~]# cat /tomcat/Dockerfile
FROM centos
LABEL MAINTAINER "harry1004 1@2.com"
ENV version 9.0.56
ENV jenkins_vsn 2.303.1
ENV PATH $PATH:/usr/local/tomcat/bin
ADD files/apache-tomcat-${version}.tar.gz /usr/local/
COPY files/jenkins-${jenkins_vsn}.war /usr/local/
COPY files/index.jsp /usr/local/
COPY files/install.sh /tmp/
RUN /tmp/install.sh
EXPOSE 8080
WORKDIR /usr/local/tomcat/bin
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
//编写脚本配置文件
[root@master ~]# cat /tomcat/files/install.sh
#!/bin/bash
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-$(awk -F'"' 'NR==5{print $2}' /etc/os-release).repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
yum -y install java-1.8.0-openjdk
ln -s /usr/local/apache-tomcat-${version}/ /usr/local/tomcat
cd /usr/local/
mkdir /usr/local/tomcat/webapps/test
cp index.jsp /usr/local/tomcat/webapps/test/
[root@master tomcat]# chmod u+x files/install.sh
//编写测试页面文件
[root@master ~]# cat /tomcat/files/index.jsp
<html>
<head>
<title>test page</title>
</head>
<body>
<%
out.println("Hello World");
%>
</body>
</html>
//生成镜像
[root@master tomcat]# docker build -t harry1004/tomcat:v1.0 /tomcat/
......略
Successfully built 69eb5a3b1e8f
Successfully tagged harry1004/tomcat:v1.0
[root@master tomcat]# docker run -itd --name tomcat -p 8080:8080 harry1004/tomcat:v1.0
db3d4a09a1f9ed0bf412fe7eb28e77370ec8b55ee11ddf33cb8dfeda964b1ab0
2. 通过Docker镜像部署Jenkins
# 交互模式登录tomcat容器
[root@master tomcat]# docker run -itd --name tomcat -p 8080:8080 harry1004/tomcat:v1.0
db3d4a09a1f9ed0bf412fe7eb28e77370ec8b55ee11ddf33cb8dfeda964b1ab0
[root@master tomcat]# docker exec -it tomcat /bin/bash
[root@db3d4a09a1f9 bin]# cd ../webapps/ROOT/
[root@db3d4a09a1f9 ROOT]# ls
RELEASE-NOTES.txt asf-logo-wide.svg bg-middle.png bg-upper.png index.jsp tomcat.svg
WEB-INF bg-button.png bg-nav.png favicon.ico tomcat.css
[root@db3d4a09a1f9 ROOT]# rm -rf RELEASE-NOTES.txt asf-logo-wide.svg bg-middle.png bg-upper.png index.jsp tomcat.css tomcat.png
# 复制jenkins包当当前目录下
[root@db3d4a09a1f9 ROOT]# cp /usr/local/jenkins-2.303.1.war .
[root@db3d4a09a1f9 ROOT]# ls
WEB-INF bg-button.png bg-nav.png favicon.ico jenkins-2.303.1.war tomcat.svg
# 下载解压软件unzip
[root@799fb773d080 ROOT]# yum -y install unzip
# 解压jenkins包
[root@799fb773d080 ROOT]# unzip jenkins-2.319.1.war
[root@db3d4a09a1f9 ROOT]# ls
ColorFormatter.class 'Main$FileAndDescription.class' bg-button.png help tomcat.svg
JNLPMain.class Main.class bg-nav.png images winstone.jar
'LogFileOutputStream$1.class' 'MainDialog$1$1.class' bootstrap jenkins-2.303.1.war
'LogFileOutputStream$2.class' 'MainDialog$1.class' css jsbundles
LogFileOutputStream.class MainDialog.class executable robots.txt
META-INF WEB-INF favicon.ico scripts
# 重启tomcat容器
[root@master ~]# docker restart tomcat
tomcat