Write the Code. Change the World.

7月 21

Jenkins 是一个开源的自动化服务器,它支持软件开发的持续集成和持续部署(CI/CD)。它允许开发团队自动化构建、测试和部署应用程序,从而提高软件开发的效率和质量。

下边来使用 docker 安装 jenkins,并配置 nginx 代理,进行子路径部署。就是 jenkins 部署到非根目录下,jenkins 只是主域名访问的一部分。

jenkins 官网下载地址:
https://www.jenkins.io/download/

安装

  1. 先创建部署目录和存储数据目录,设置权限。
mkdir jenkins

cd jenkins

mkdir jenkins_home

chown 1000:1000 jenkins_home
  1. 创建 docker-compose.yaml 文件。
services:
  jenkins:
    image: jenkins/jenkins:2.568.1
    container_name: jenkins
    restart: always
    volumes:
      - ./jenkins_home:/var/jenkins_home
      # 挂载宿主机 docker.sock,让 Jenkins 能调用宿主机的 docker
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
      # 挂载宿主机的 SSH 密钥(git clone Codeberg 用)
      - /root/.ssh:/var/jenkins_home/.ssh:ro
    environment:
      - TZ:Asia/Shanghai
    command: >
      --prefix=/cicd
    networks:
      - xrnet

networks:
  xrnet:
    external: true

这里的网络必须和宿主机中 nginx 的网络相同。因为要部署到子路径下,所以要配置 prefix。

  1. 运行起来。
docker compose up -d
  1. 修改已存在的 nginx 配置,添加代理,就使用 cicd 作为子路径代理。新增代理配置。
    location /cicd/ {
        proxy_pass http://jenkins:8080;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Context /cicd;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_connect_timeout 60s;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
    }

    location = /cicd {
        return 301 /cicd/;
    }
  1. 重启 nginx。
docker restart xr-nginx

运行并设置用户名和密码

  1. 打开网站: https://xxx.xxx.com/cicd
  2. 查找密码,输入密码,继续。
    # 查看密码
    cat ./jenkins home/secrets/initialAdminPassword

  3. 安装插件,可以选择安装默认插件。安装过程到最后,如果有失败的可以继续安装,也可以跳过进入到下一步。
  4. 配置第一个管理员用户,这个比较重要,要记住账号和密码。
  5. 继续直到最后。
  6. 安装完成,进入 jenkins 首页。

开始使用