在树莓派上使用 Docker 部署 Jenkins

@adens 7/28/2022 8:23:01 AM

安装环境

树莓派4b, ubuntu20.04.

docker-compose.yml

version: '3'
services:
  jenkins:
    user: root
    image: jenkins4eval/jenkins:latest
    container_name: jenkins
    restart: always
    ports:
      - 3999:8080
        # - 3998:50000
        # environment:
            # - JENKINS_JAVA_OPTIONS="-Xmx2048m -XX:MaxPermSize=512m -Djava.awt.headless=true"
    volumes:
      - ./jenkins/data:/var/jenkins_home


解决问题

问题1:无法使用Docker

方法1:使用docker插件(和本地docker不关联还需要额外配置)

方法2:挂在本地docker.sock

修改docker-compose.yml

添加volume内容

volumes:
      - /usr/bin/docker:/usr/bin/docker
      - /var/run/docker.sock:/var/run/docker.sock

问题2:更新jenkins版本

方法1:直接拉取最新的jenkins镜像

方法2:挂在Jenkins容器的war地址

volumes添加以下内容

- ./jenkins/war:/usr/share/jenkins

jenkins自动更新下载jenkins.war包放在了/usr/share/jenkins的地址下面.如果不挂载每次重新启动容器的时候会回退到最初的版本.更新失败

问题3: 证书过期

主要表现为:jenkins 拉取git的时候报错:

server certificate verification failed. CAfile: /etc/ssl/certs/cacertificates.crt CRLfile: none

这个最容易发生在自建git的时候或使用gitlab的时候

方法: 添加本地的certs文件地址映射

docker-compose.yml 的volumes里添加以下内容

- /etc/ssl/certs:/etc/ssl/certs

在本机安装ca-certificatesca-certificates-java

sudo apt install ca-certificates ca-certificates-java

执行命令sudo update-ca-certificates -f

会更新/etc/ssl/certs的文件和创建/etc/ssl/certs/java/cacerts文件

注意:如果不安装ca-certificates-java执行更新命令也是可以的,但是不会创建/etc/ssl/certs/java/cacerts.这个是java环境专用的.通过java环境发起的https请求会判断/etc/ssl/certs/java/cacerts这个文件里的证书是否可信.没有还继续报错.

Last Modification : 7/28/2022 8:23:01 AM


In This Document