美文网首页
制作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