一、Jenkins 和 Docker
Jenkins 是一款開源軟件,用於實現持續集成和持續交付。Docker 是一種容器化技術,可將應用打包為可移植的容器。Jenkins 和 Docker 是兩個不同的軟件,但它們可以很好地結合使用,實現自動化部署構建。
要使用 Jenkins Docker 自動化部署構建,首先需要安裝 Jenkins 和 Docker。可以按照以下步驟進行安裝:
# 安裝 Jenkins sudo apt update sudo apt install default-jre wget -q -O - https://pkg.jenkins.io/debian-stable/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 sudo apt install jenkins # 啟動 Jenkins sudo systemctl start jenkins # 安裝 Docker sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io # 啟動 Docker sudo systemctl start docker
二、使用 Jenkins 和 Docker 構建和部署應用
在安裝好 Jenkins 和 Docker 後,我們可以用它們來構建和部署應用。下面是一個示例應用的構建和部署流程:
- Jenkins 從代碼庫中拉取最新的代碼
- Jenkins 使用 Dockerfile 構建 Docker 容器鏡像
- Jenkins 將鏡像推送到 Docker Hub
- Jenkins 在目標服務器上啟動 Docker 容器
要實現這個流程,我們需要在 Jenkins 中配置以下內容:
- 創建一個 Jenkins 項目
- 配置 Jenkins 構建過程,包括從代碼庫拉取代碼、構建 Docker 鏡像、推送鏡像到 Docker Hub、啟動 Docker 容器
- 配置 Jenkins 的 Docker 插件,用於和 Docker 交互
- 在目標服務器上安裝 Docker,用於接收 Jenkins 推送的鏡像並啟動容器
下面是一個具體的代碼示例,用於演示如何在 Jenkins 中實現自動化部署構建:
pipeline { agent any stages { stage('Build') { steps { script { git 'https://github.com/username/repo.git' docker.build('my-image:1.0.0 .') docker.withRegistry('https://registry.hub.docker.com', 'docker-hub-credentials') { docker.push('my-image:1.0.0') } } } } stage('Deploy') { steps { script { sshagent(['ssh-key']) { sh ''' ssh user@host "docker stop my-container || true && docker rm my-container || true" ssh user@host "docker pull my-image:1.0.0" ssh user@host "docker run -d --name my-container my-image:1.0.0" ''' } } } } } }
三、優點和應用場景
Jenkins Docker 自動化部署構建有以下優點:
- 快速:Docker 容器鏡像可以快速部署,應用可以在幾分鐘內上線
- 簡便:自動化部署構建流程可以免去手動部署的繁瑣過程,提高效率
- 可靠:Docker 環境可以確保在不同的計算機上具有相同的運行環境,降低構建和部署的風險
Jenkins Docker 自動化部署構建適用於以下應用場景:
- 需要頻繁部署更新的 Web 應用
- 需要部署到多台服務器的應用
- 需要確保環境一致性的應用
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/194611.html