美文网首页
制作jenkins镜像

制作jenkins镜像

作者: david161 | 来源:发表于2022-03-02 10:21 被阅读0次

制作步骤

1.编写Dockerfile文件。
2.从下一步骤开始。所有文件都在jenkins中文社区寻找。但是不能在windows系统创建。因为系统文件格式 不同。jenkins启动时会报错。
3.创建init.groovy文件。
4.创建hudson.model.UpdateCenter.xml
5.创建mirror-adapter.crt
6.制作镜像
7.启动容器,试运行镜像
8.jenkins工作台操作,检验插件下载速度
9.停止容器
10.删除容器 备份镜像

基础镜像

docker pull jenkins/jenkins:2.204.5-alpine

Dockerfile

在基础镜像中增加时区修正。安装常用软件。更新jenkins插件为中文社区地址

FROM jenkins/jenkins:2.204.5-alpine 
#自定义jenkins镜像 
# 作者信息 
MAINTAINER war kubernete jenkins "admin@lagou.com" 
# 修改源 
USER root RUN echo "http://mirrors.aliyun.com/alpine/latest-stable/main/" >> 
/etc/apk/repositories && \
    echo "http://mirrors.aliyun.com/alpine/latest-stable/community/" >> /etc/apk/repositories
# 安装需要的软件,解决时区问题
RUN apk --update add curl bash tzdata && \ 
    rm -rf /var/cache/apk/*
#修改镜像为东八区时间
ENV TZ Asia/Shanghai 
ENV JENKINS_UC https://updates.jenkins-zh.cn 
ENV JENKINS_UC_DOWNLOAD https://mirrors.tuna.tsinghua.edu.cn/jenkins 
ENV JENKINS_OPTS="- Dhudson.model.UpdateCenter.updateCenterUrl=https://updates.jenkins-zh.cn/update- center.json" 
ENV JENKINS_OPTS="-Djenkins.install.runSetupWizard=false" 
COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/init.groovy 
COPY hudson.model.UpdateCenter.xml /usr/share/jenkins/ref/hudson.model.UpdateCenter.xml 
COPY mirror-adapter.crt /usr/share/jenkins/ref/mirror-adapter.crt

init.groovy

在github的jenkins中文社区中找到文件,复制文件内容

import java.io.File; 
import java.io.FileOutputStream; 
import java.io.InputStream; 
import java.net.URL; 
import hudson.init.InitMilestone; 
import jenkins.model.Jenkins;

Thread.start { 
    while(true) { 
        Jenkins instance = Jenkins.getInstance(); 
        InitMilestone initLevel = instance.getInitLevel(); 
        Thread.sleep(1500L); 
        println "Jenkins not ready when handle init config..." 
        if (initLevel >= InitMilestone.PLUGINS_STARTED) { 
            InputStream input = new FileInputStream("/usr/share/jenkins/ref/mirror- adapter.crt") 
            FileOutputStream out = new FileOutputStream(System.getenv("JENKINS_HOME") + "/war/WEB-INF/update-center-rootCAs/mirror-adapter.crt"); 
            byte[] buf = new byte[1024]; 
            int count = -1; 
            while((count = input.read(buf)) > 0) {  
                out.write(buf, 0, count); 
            }
            println "Jenkins init ready..." 
            break 
         } 
    } 
}

hudson.model.UpdateCenter.xml

在github的jenkins中文社区中找到文件,复制文件内容。更换插件安装地址为国内插件地址

<?xml version='1.1' encoding='UTF-8'?> 
<sites> 
  <site> 
    <id>default</id> 
    <url>https://updates.jenkins-zh.cn/update-center.json</url> 
  </site> 
</sites>

mirror-adapter.crt

在github的jenkins中文社区中找到文件,复制文件内容。jenkins官方配置2对秘钥,一对是jenkins官网使用。这一对是jenkins中文社区使用。更新秘钥后。下载地址更新为国内地址。

-----BEGIN CERTIFICATE----- 
MIICcTCCAdoCCQD/jZ7AgrzJKTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJD 
TjELMAkGA1UECAwCR0QxCzAJBgNVBAcMAlNaMQ4wDAYDVQQKDAV2aWhvbzEMMAoG 
A1UECwwDZGV2MREwDwYDVQQDDAhkZW1vLmNvbTEjMCEGCSqGSIb3DQEJARYUYWRt 
aW5AamVua2lucy16aC5jb20wHhcNMTkxMTA5MTA0MDA5WhcNMjIxMTA4MTA0MDA5 
WjB9MQswCQYDVQQGEwJDTjELMAkGA1UECAwCR0QxCzAJBgNVBAcMAlNaMQ4wDAYD 
VQQKDAV2aWhvbzEMMAoGA1UECwwDZGV2MREwDwYDVQQDDAhkZW1vLmNvbTEjMCEG 
CSqGSIb3DQEJARYUYWRtaW5AamVua2lucy16aC5jb20wgZ8wDQYJKoZIhvcNAQEB 
BQADgY0AMIGJAoGBAN+6jN8rCIjVkQ0Q7ZbJLk4IdcHor2WdskOQMhlbR0gOyb4g 
RX+CorjDRjDm6mj2OohqlrtRxLGYxBnXFeQGU7wWjQHyfKDghtP51G/672lXFtzB 
KXukHByHjtzrDxAutKTdolyBCuIDDGJmRk+LavIBY3/Lxh6f0ZQSeCSJYiyxAgMB 
AAEwDQYJKoZIhvcNAQELBQADgYEAD92l26PoJcbl9GojK2L3pyOQjeeDm/vV9e3R 
EgwGmoIQzlubM0mjxpCz1J73nesoAcuplTEps/46L7yoMjptCA3TU9FZAHNQ8dbz 
a0vm4CF9841/FIk8tsLtwCT6ivkAi0lXGwhX0FK7FaAyU0nNeo/EPvDwzTim4XDK 
9j1WGpE= 
-----END CERTIFICATE-----

制作镜像

docker build --rm -t lagou/jenkins:2.204.5-alpine .

启动容器

创建映射目录 
mkdir -p /data/jenkins && chown -R 1000:1000 /data/jenkins 

运行容器 
docker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -u root -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --restart=always -v /data/jenkins/:/var/jenkins_home/ lagou/jenkins:2.204.6-alpine 

查看容器启动日志并找到jenkins初始化密码 
docker logs -f jenkins

测试镜像

http://192.168.198.153:8080

安装插件

安装jenkins默认插件,观察下载速度。

删除镜像

停止容器 
docker stop jenkins 

删除容器 
docker rm jenkins 

备份镜像 
docker save lagou/jenkins:2.204.5-alpine -o lagou.jenkins:2.204.5-alpine.tar 

或者将镜像上传harbor私服

相关文章

网友评论

      本文标题:制作jenkins镜像

      本文链接:https://www.haomeiwen.com/subject/fykrrrtx.html