OS基础环境、JDK环境、jenkins.war等容器镜像构建
2020-05-01 23:54
393 查看
1.构建os基础镜像
1)制作适合自己的os镜像Dockerfile,注意Dockerfile文件名的首字母"D"必须要大写,否则构建时无法识别
[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
2)通过Dockerfile构建os基础镜像
[root@k8s centos7.6]# docker build -t k8s.harbor.cn/base_application/centos:7.6-base .
3)查看构建的centos基础镜像
[root@k8s centos7.6]# docker images | grep 7.6-base
2.构建jdk环境镜像
1)准备好jdk环境压缩包
[root@k8s jdk-base]# ll
2)准备环境变量配置文件profile,用于替换掉jdk容器中的profile文件
[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
3)jdk的Dockerfile制作
[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
4)开始构建为jdk镜像
[root@k8s jdk-base]# docker build -t k8s.harbor.cn/base_application/jdk:1.8.u221-base .
5)查看构建的jdk镜像
[root@k8s jdk-base]# docker images | grep jdk
3.构建jenkins镜像
1)以下为构建jenkins镜像准备的文件
[root@k8s jenkins]# ll
2)下载好jenkins程序的war包,和事先打包好plugins插件压缩包避免jenkins启动下载插件太慢
3)默认为google的更新源,这样会导致无法连接国外源使得jenkins无法启动,因此修改hudson的url为国内清华大学更新源
[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>
4)jenkins的启动脚本,通过java命令指定jenkins的war包、最大最小堆内存、webroot应用目录、监听的端口
[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
5)制作jenkins的Dockerfile镜像文件
[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"]
6)构建jenkins的镜像
[root@k8s jenkins]# docker build -t k8s.harbor.cn/base_application/jenkins-base:v1 .
7)查看构建的jenkins镜像
[root@k8s jenkins]# docker images
4.通过镜像启动jenkins容器应用
1)命令启动jenkins容器
[root@k8s jenkins]# docker run -d -p 8181:8081 k8s.harbor.cn/base_application/jenkins-base:v1
2)查看jenkins容器是否为启动
[root@k8s jenkins]# docker ps | grep jenkins
3)web端页面访问,可见需要容器指定路径获取初始化密码方可继续
4)进入容器找到初始密码
[root@k8s jenkins]# docker exec -it fc20749e2450 bash
5)jenkins启动后最重要的两个目录,一个为webroot应用目录,一个为jenkins的数据目录,生产中建议映射到NFS存储或安全的存储设备路径下
#webroot应用目录 [root@fc20749e2450 /]# ll apps/jenkins/war_data/
#Jenkins的数据保存目录
[root@fc20749e2450 ~]# ll /root/.jenkins/
6)返回web,输入初始密码继续,关闭插件安装,因事先早已准备好插件
7)直接开始使用
8)成功进入jenkins的控制台界面
相关文章推荐
- docker实战1 (docker-toolbox的安装,docker基础命令详解[运行,容器导入/导出,镜像导入/导出,数据卷,网络],构建100个docker实例的测试环境)
- 【项目管理】Jenkins+Maven+Git项目持续构建之搭建JDK/Maven基础环境
- 持续集成之jenkins实践教程:基础篇(6): 在jenkins的容器中进行镜像的构建
- 【Dockerfile】CentOS6.x中Docker通过Dockerfile构建常用的基础环境 # 设置基本的镜像,后续命令都以这个镜像为基础 FROM centos # 作者信息 MAI
- Jenkins 为开发环境、生产环境等不同环境构建war
- Docker容器之最小JDK基础镜像
- jenkins构建踩的坑(docker构建的镜像容器)
- [docker]Centos7环境JAVA基础docker镜像构建
- spring boot结合jenkins自动构建docker镜像并启动容器
- 使用docker构建jenkins镜像并运行容器
- docker构建jenkins镜像和容器
- 使用docker构建jenkins镜像并运行容器
- 持续集成:docker下使用jenkins容器构建docker镜像
- 从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备
- Jenkins实践基础:JNLP方式搭建Master-Slave分布式构建环境
- 使用docker构建jenkins镜像并运行容器
- Jenkins基础:Jenkinsfile使用实例:12:在Jenkins分布式构建环境中执行构建
- docker 构建基础镜像 时区问题
- (一)IBM Sterling OMS 环境构建之JDK
- windows环境下,Jenkins的安装和基础配置