基于Docker 5分钟解决Jenkins环境搭建问题

客官°小女子只卖身不卖艺 2022-12-21 09:30 219阅读 0赞

在这里插入图片描述

Jenkins;一款基于Java开发的开源持续集成工具,可以让打包、发布、自动化测试变的更加边界;由于使用标准的安装会存在一些插件下载、安装、更新的问题;导致很多人还在门口就被拦回去了,无法领略到其优秀的风采。因此这里使用Docker安装一个中国定制版的Jenkins;保证你能在5分钟内就解决掉环境搭建的问题。

不会Docker的可以参考下面的文章安装Docker:

CentOS 7下安装Docker及基础操作

基于VirtualBox搭建Linux(CentOS 7)虚拟机环境(学习必备技能)

Docker安装Jenkins安装

https://hub.docker.com/r/jenkinszh/jenkins-zh

  • 下载基础镜像
    1. docker pull jenkinszh/jenkins-zh
  • 制作镜像

    思考一个问题,我们现在要做是在Docker里面部署Jenkins;Jinkins是用来做持续集成的,后续可能用他来制作Docker镜像;制作Docker镜像必须得有Docker环境;难道我们得在Jenkins容器里面再部署一个Docker?当前Docker就是运行在宿主机的Docker里面,我们能否在Jenkins容器里面使用宿主机的Docker?当然是可以的,按以下方式制作一个镜像。

    创建一个Dockerfile;添加以下内容

    1. FROM jenkinszh/jenkins-zh
    2. USER root
    3. #清除了基础镜像设置的源,切换成阿里云的jessie源
    4. RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \
    5. && echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \
    6. && echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \
    7. && echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
    8. #更新源并安装缺少的包
    9. RUN apt-get update && apt-get install -y libltdl7
    10. ARG dockerGid=999
    11. RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group \
    12. USER jenkins
    13. ## 以下添加了一些jenkins常规要用到的软件
    14. # 进入到src目录
    15. RUN cd /usr/local/src
    16. # 下载maven
    17. RUN wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
    18. # 如果通过构建的时候下载慢,可以在电脑上先下载,然后通过下面的指令
    19. # ADD apache-maven-3.6.3-bin.tar.gz /usr/local/src
    20. # 下载nodejs
    21. RUN wget https://nodejs.org/dist/v14.15.0/node-v14.15.0-linux-x64.tar.xz
    22. # 如果通过构建的时候下载慢,可以在电脑上先下载,然后通过下面的指令
    23. # ADD node-v14.15.0-linux-x64.tar.xz /usr/local/src
    24. # 解压maven
    25. RUN tar -zxvf apache-maven-3.6.3-bin.tar.gz
    26. # 删除maven的安装包
    27. RUN rm -rf apache-maven-3.6.3-bin.tar.gz
    28. # 将maven包移动到/usr/lcal目录下
    29. RUN mv apache-maven-3.6.3 /usr/local/
    30. # 解压nodejs
    31. RUN tar -xvf node-v14.15.0-linux-x64.tar.xz
    32. # 删除maven的安装包
    33. RUN rm -rf node-v14.15.0-linux-x64.tar.xz
    34. # 将nodejs移动到/usr/lcoal
    35. RUN mv node-v14.15.0-linux-x64 /usr/local/
    36. # 设置环境变量,将maven和nodejs的环境变量设置到现有PATH中去
    37. ENV PATH=$PATH:/usr/local/apache-maven-3.6.3/bin:/usr/local/node-v14.15.0-linux-x64/bin
    38. # nodejs设置淘宝的镜像源
    39. RUN npm config set registry https://registry.npm.taobao.org
    40. # 查看镜像源
    41. RUN npm config get registry
    42. # 安装git
    43. RUN apt-get install -y git
    44. # 测试是否安装成功
    45. RUN git --version

    上面的Dockerfile不仅是配置了Jenkins使用宿主机Docker;同时也将常用的maven、nodejs、git一并整合进去了;下载的过程可能会比较的慢,如果实在更新不了,可以先下载,然后通过上面提到的ADD的方式添加到容器内部;

    Maven:https://mirrors.aliyun.com/apache/maven/maven-3/

    nodejs:https://nodejs.org/en/download/

  • 构建镜像

    构建过程可能比较的漫长

    因为存在多个安装包的下载过程

    构建后的截图也只截取了其中的一部分

    1. docker build -t jenkinszh/jenkins-zh-share-1 .

    image-20201113182506289

  • 运行镜像
    1. docker run \
    2. -p 8880:8080 \
    3. -p 50000:50000 \
    4. --name=jenkins \
    5. --restart=always \
    6. -v /var/run/docker.sock:/var/run/docker.sock \
    7. -v $(which docker):/usr/bin/docker \
    8. -v /var/jenkins/data:/var/jenkins_home \
    9. -v /usr/local/apache-maven-3.6.3/repository:/usr/local/apache-maven-3.6.3/repository \
    10. -d jenkinszh/jenkins-zh-share-1

    image-20201113182721525

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sv5rFd8T-1605455297878)(https://b3logfile.com/file/2020/11/solofetchupload1551903260163017260-01c4bc8e.png)\]

    -p 8880:8080 -p 50000:50000 分别将8080和5000映射到宿主机的8880和50000上

    -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker 是共享宿主机Docker的映射

    -v /var/jenkins/data:/var/jenkins_home jenkins配置相关数据的映射

    -v /usr/local/apache-maven-3.6.3/repository:/usr/local/apache-maven-3.6.3/repository 容器本地资源库的映射

  • 测试各个环境变量是否正常
    1. docker exec -it 容器id git --version
    2. docker exec -it 容器id mvn --version
    3. docker exec -it 容器id java -version
    4. docker exec -it 容器id node -v
    5. docker exec -it 容器id npm -v

    image-20201113183406257

基础配置

  • 进入jenkins

    http://192.168.1.222:8880

    ip根据个人实际情况来

  • 查看默认密码
    1. # 进入容器
    2. docker ps
    3. docker exec -it 容器id /bin/bash
    4. cat /var/jenkins_home/secrets/initialAdminPassword

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SQrPMhyR-1605455297879)(https://b3logfile.com/file/2020/11/solofetchupload6313624511471982121-7f3d0c2f.png)\]

  • 安装插件

    使用中国定制版的jenkins,你会发现,插件的安装非常的顺利,一片绿;使用官方的版本,这里就是一片红

    先安装推荐的插件,然后后续的使用过程中;根据自己的需要选择性安装

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-78FsiGop-1605455297879)(https://b3logfile.com/file/2020/11/solofetchupload1813229626540302755-6cd486f6.png)\]

  • 设置管理员密码

    默认一般都是创建一个jenkins的用户作为管理员

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oOS4eNbU-1605455297880)(https://b3logfile.com/file/2020/11/solofetchupload4429682990601060559-326f13e9.png)\]

    只要插件的下载、安装解决了,就解决了使用过程中的一座大山。

  • 修改maven的镜像仓库

    我们在镜像构建的时候,就已经指定了nodejs的镜像源为淘宝;但是maven的镜像源依然是没有修改的,因此这里配置以下Maven的镜像源

    • 第一步,将jenkins容器中的maven配置文件settings.xml拷贝出来

      1. docker cp 容器ID:/usr/local/apache-maven-3.6.3/conf/settings.xml ./

      image-20201113190346319

    • 第二步,修改配置

      修改maven仓库的地址;便于将仓库地址持久化

      1. <localRepository>/usr/local/apache-maven-3.6.3/repository</localRepository>

      修改阿里仓库地址

      在mirrors节点下添加以下配置

      1. <mirror>
      2. <id>alimaven</id>
      3. <name>aliyun maven</name>
      4. <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      5. <mirrorOf>central</mirrorOf>
      6. </mirror>

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MXUjXr0X-1605455297881)(https://b3logfile.com/file/2020/11/solofetchupload3712447283753465824-712ac6e3.png)\]

    • 第三步,将修改后的配置文件再拷贝到容器中

      1. # 将settings.xml拷贝到容器中去
      2. docker cp ./settings.xml 容器id:/usr/local/apache-maven-3.6.3/conf/
      3. # 查看容器中的目录是否正常
      4. docker exec -it 容器id ls /usr/local/apache-maven-3.6.3/conf/

      image-20201113191000334

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,219人围观)

还没有评论,来说两句吧...

相关阅读