溫馨提示×

Jenkins如何在Ubuntu上實現自動化

小樊
51
2025-04-13 14:19:43
欄目: 智能運維

Jenkins是一個流行的開源自動化工具,用于實現持續集成和持續交付。以下是在Ubuntu上實現Jenkins自動化的步驟:

安裝Jenkins

  1. 更新系統
sudo apt update
sudo apt upgrade
  1. 安裝Java
sudo apt install openjdk-11-jdk
  1. 添加Jenkins存儲庫
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
  1. 安裝Jenkins
sudo apt install jenkins
  1. 訪問Jenkins Web界面
  • 打開瀏覽器,輸入 http://<your-server-ip>:8080。
  • 輸入初始管理員密碼(可以從 /var/lib/jenkins/secrets/initialAdminPassword 獲?。?。
  1. 配置Jenkins
  • 登錄后,配置全局系統設置和安裝必要的插件。

配置Jenkins Pipeline

  1. 新建流水線任務
  • 在Jenkins中新建一個流水線任務。
  1. 配置Pipeline
pipeline {
    agent any
    environment {
        DOCKER_REGISTRY = "你的鏡像倉庫地址"
    }
    stages {
        stage('Git Pull') {
            steps {
                git url: '你的Git倉庫地址', branch: 'master'
            }
        }
        stage('Maven Build') {
            steps {
                sh 'mvn clean package -DskipTests'
            }
        }
        stage('Docker Build') {
            steps {
                script {
                    docker.build("demo-app:${env.BUILD_ID}")
                }
            }
        }
        stage('Deploy') {
            steps {
                sh 'docker stop myapp || true'
                sh 'docker rm myapp || true'
                sh "docker run -d -p 8080:8080 --name myapp demo-app:${env.BUILD_ID}"
            }
        }
    }
}
  1. 配置觸發器
  • 在任務設置中添加GitHub hook trigger,并在Git倉庫配置Webhook。

自動化部署流程

  1. 代碼推送到Git倉庫
  • 開發者將代碼推送到Git倉庫。
  1. Jenkins檢測到變更
  • Jenkins檢測到代碼變更并自動觸發構建流程。
  1. 拉取最新代碼打包
  • Jenkins拉取最新代碼并進行打包。
  1. 用Docker構建鏡像
  • 使用Docker構建項目鏡像。
  1. 推送到服務器運行
  • 將構建好的鏡像推送到服務器并運行。

常見問題及解決方案

  • 權限不足:給Jenkins用戶加docker執行權限 sudo usermod -aG docker jenkins,然后重啟Jenkins服務。
  • 構建緩存問題:在mvn命令后加 -U 參數強制更新依賴。
  • 端口沖突:部署前先用 docker stop 停止舊容器。
  • 內存溢出:在 docker run 命令添加內存限制 --memory 512m --memory-swap 1g。

通過以上步驟,您可以在Ubuntu上成功配置Jenkins實現自動化部署。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女