[root@k8s centos7.6]# cat Dockerfile #基礎鏡像來源,事先在dockerhub下載centos:7.6.1810 FROM centos:7.6.1810 #鏡像維護者 MAINTAINER zhaojiehe #配置yum源 RUN yum install wget -y&&rm -rf /etc/yum.repos.d/* && wget -O /etc/yum.repos.d/epel.repo \ http://mirrors.aliyun.com/repo/epel-7.repo&&wget -O /etc/yum.repos.d/CentOS7-Base-163.repo \ http://mirrors.163.com/.help/CentOS7-Base-163.repo #安裝必要的包 RUN yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre pcre-devel \ openssl openssl-devel zip unzip zlib-devel net-tools lrzsz tree ntpdate \ telnet lsof tcpdump wget libevent libevent-devel bc systemd-devel \ bash-completion traceroute -y
[root@k8s centos7.6]# docker build -t k8s.harbor.cn/base_application/centos:7.6-base .
[root@k8s centos7.6]# docker images | grep 7.6-base
[root@k8s jdk-base]# ll
[root@k8s jdk-base]# cat profile | tail -n3 export JAVA_HOME=/usr/local/src/jdk export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
[root@k8s jdk-base]# cat Dockerfile #基礎鏡像爲上面製做好的centos鏡像 FROM k8s.harbor.cn/base_application/centos:7.6-base #鏡像維護者 MAINTAINER zhaojiehe #添加jdk壓縮包到容器指定的路徑中,ADD命令會自動解壓壓縮包 ADD jdk-8u221-linux-x64.tar.gz /usr/local/src #建立jdk軟鏈接以及java程序的軟鏈接 RUN ln -sv /usr/local/src/jdk1.8.0_221 /usr/local/src/jdk && ln -sv /usr/local/src/jdk/bin/* /usr/bin/ #添加本地配置的profile環境變量文件到容器中 ADD profile /etc/profile #聲明環境變量,使java環境生效 ENV JAVA_HOME /usr/local/src/jdk ENV PATH $JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH ENV CLASSPATH $JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
[root@k8s jdk-base]# docker build -t k8s.harbor.cn/base_application/jdk:1.8.u221-base .
[root@k8s jdk-base]# docker images | grep jdk
[root@k8s jenkins]# ll
[root@k8s jenkins]# cat hudson.model.UpdateCenter.xml <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json</url> </site> </sites>
[root@k8s jenkins]# cat jenkins_start.sh #!/bin/bash cd /apps/jenkins && java -server -Xms1024m -Xmx1024m -jar jenkins-2.190.3.war --webroot=/apps/jenkins/war_data --httpPort=8081
[root@k8s jenkins]# cat Dockerfile #指定jdk的基礎鏡像 FROM k8s.harbor.cn/base_application/jdk:1.8.u221-base #鏡像維護者 MAINTAINER zhaojiehe #本地默認是UTC時區,將時區設置爲國內上海時區 RUN rm -f /etc/localtime && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #本地修改好的hudson文件提早放入jenkins容器中 ADD hudson.model.UpdateCenter.xml /root/.jenkins/ #jenkins須要的插件打入容器中 ADD jenkins_plugins.tar.gz /root/.jenkins/ #jenkins啓動的war添加到容器中,會自動建立/apps/jenkins/此文件目錄,無需手動建立 ADD jenkins-2.190.3.war /apps/jenkins/ #jenkins的啓動腳本添入容器 ADD jenkins_start.sh /usr/bin/ #將Jenkins的指定8081端口暴露 expose 8081 #執行jenkins的守護進程腳本命令 CMD ["/usr/bin/jenkins_start.sh"]
[root@k8s jenkins]# docker build -t k8s.harbor.cn/base_application/jenkins-base:v1 .
[root@k8s jenkins]# docker images
[root@k8s jenkins]# docker run -d -p 8181:8081 k8s.harbor.cn/base_application/jenkins-base:v1
[root@k8s jenkins]# docker ps | grep jenkins
[root@k8s jenkins]# docker exec -it fc20749e2450 bash
#webroot應用目錄 [root@fc20749e2450 /]# ll apps/jenkins/war_data/
#Jenkins的數據保存目錄
[root@fc20749e2450 ~]# ll /root/.jenkins/java