[toc]
jenkins安装
标准安装
安装jdk
jenkins版本与jdk版本兼容说明 官方文档
| Supported Java versions | Long term support (LTS) release | Weekly release | 
|---|---|---|
| Java 17 or Java 21 | 2.479.1 (October 2024) | 2.463 (June 2024) | 
| Java 11, Java 17, or Java 21 | 2.426.1 (November 2023) | 2.419 (August 2023) | 
| Java 11 or Java 17 | 2.361.1 (September 2022) | 2.357 (June 2022) | 
| Java 8, Java 11, or Java 17 | 2.346.1 (June 2022) | 2.340 (March 2022) | 
| Java 8 or Java 11 | 2.164.1 (March 2019) | 2.164 (February 2019) | 
| Java 8 | 2.60.1 (June 2017) | 2.54 (April 2017) | 
| Java 7 | 1.625.1 (October 2015) | 1.612 (May 2015) | 
- openjdk
 - oracle jdk
 
可在 oracle官网 下载jdk
下载安装包
wget https://download.oracle.com/java/21/latest/jdk-21_linux-aarch64_bin.tar.gz
解压缩包
tar xf jdk-21_linux-aarch64_bin.tar.gz -C /usr/local
导出环境变量
cat > /etc/profile.d/jdk21.sh <<'EOF'
export JAVA_HOME=/usr/local/jdk-21.0.8
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre:$JAVA_HOME/lib:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
EOF
使配置生效
source /etc/profile
链接命令
ln -s /usr/local/jdk-21.0.8/bin/java /usr/bin/java
查看版本
$ java -version
java version "21.0.8" 2025-07-15 LTS
Java(TM) SE Runtime Environment (build 21.0.8+12-LTS-250)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.8+12-LTS-250, mixed mode, sharing)
安装jenkins
rpm包安装
下载安装包
wget https://get.jenkins.io/redhat-stable/jenkins-2.516.3-1.1.noarch.rpm
安装
dnf localinstall jenkins-2.516.3-1.1.noarch.rpm
yum源安装
- lts版
 - 每周发布版
 
# 下载源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
# 导入key
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
# 安装jenkins
yum -y install jenkins
# 下载源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
# 导入key
rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key
# 安装jenkins
yum -y install jenkins
查看jenkins相关配置
说明
高版本的jenkins配置文件目录在 /var/lib/jenkins
$ egrep -v '^$|#' /usr/lib/systemd/system/jenkins.service
[Unit]
Description=Jenkins Continuous Integration Server
Requires=network.target
After=network.target
StartLimitBurst=5
StartLimitIntervalSec=5m
[Service]
Type=notify
NotifyAccess=main
ExecStart=/usr/bin/jenkins
Restart=on-failure
SuccessExitStatus=143
User=jenkins
Group=jenkins
Environment="JENKINS_HOME=/var/lib/jenkins"
WorkingDirectory=/var/lib/jenkins
Environment="JENKINS_WEBROOT=%C/jenkins/war"
Environment="JAVA_OPTS=-Djava.awt.headless=true"
Environment="JENKINS_PORT=8080"
[Install]
WantedBy=multi-user.target
启动jenkins
systemctl enable jenkins && systemctl start jenkins
访问jenkins
jenkins刚启动比较慢,等待启动完成

从 /var/lib/jenkins/secrets/initialAdminPassword 文件按中获取密码

配置jenkins
安装插件

等待安装完成

创建管理员用户(可选)
也可以使用admin用户继续

确认jenkins访问地址

开始使用

jenkins登陆首界面

docker安装
- docker
 - docker compose
 
docker run \
  -d \
  -h jenkins \
  --name jenkins \
  --restart=on-failure \
  -p 8080:8080 \
  -p 50000:50000 \
  -e TZ=Asia/Shanghai \
  -v jenkins_home:/var/jenkins_home \
  jenkins/jenkins:2.516.3-lts-jdk21
cat > docker-compoe.yaml << EOF
services:
  jenkins:
    hostname: jenkins
    container_name: jenkins
    restart: on-failure
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - jenkins_home:/var/jenkins_home
    environment:
      - TZ=Asia/Shanghai
    image: jenkins/jenkins:2.516.3-lts-jdk21
volumes:
  jenkins_home:
    name: jenkins_home
EOF
登陆jenkins后如果提示jenkins反向代理配置错误,参考 官方提供的nginx配置 即可
upstream jenkins {
  keepalive 32; # keepalive connections
  server 127.0.0.1:8080; # jenkins ip and port
}
# Required for Jenkins websocket agents
map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}
server {
  listen          80;       # Listen on port 80 for IPv4 requests
  server_name     jenkins.example.com;  # replace 'jenkins.example.com' with your server domain name
  # this is the jenkins web root directory
  # (mentioned in the output of "systemctl cat jenkins")
  root            /var/run/jenkins/war/;
  access_log      /var/log/nginx/jenkins.access.log;
  error_log       /var/log/nginx/jenkins.error.log;
  # pass through headers from Jenkins that Nginx considers invalid
  ignore_invalid_headers off;
  location ~ "^\/static\/[0-9a-fA-F]{8}\/(.*)$" {
    # rewrite all static files into requests to the root
    # E.g /static/12345678/css/something.css will become /css/something.css
    rewrite "^\/static\/[0-9a-fA-F]{8}\/(.*)" /$1 last;
  }
  location /userContent {
    # have nginx handle all the static requests to userContent folder
    # note : This is the $JENKINS_HOME dir
    root /var/lib/jenkins/;
    if (!-f $request_filename){
      # this file does not exist, might be a directory or a /**view** url
      rewrite (.*) /$1 last;
      break;
    }
    sendfile on;
  }
  location / {
      sendfile off;
      proxy_pass         http://jenkins;
      proxy_redirect     default;
      proxy_http_version 1.1;
      # Required for Jenkins websocket agents
      proxy_set_header   Connection        $connection_upgrade;
      proxy_set_header   Upgrade           $http_upgrade;
      proxy_set_header   Host              $http_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_max_temp_file_size 0;
      #this is the maximum upload size
      client_max_body_size       10m;
      client_body_buffer_size    128k;
      proxy_connect_timeout      90;
      proxy_send_timeout         90;
      proxy_read_timeout         90;
      proxy_request_buffering    off; # Required for HTTP CLI commands
  }
}

