在Linux中,Jenkins與Docker的集成可以通過以下步驟實現:
安裝Jenkins:
sudo apt update
sudo apt install -y jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins
安裝Docker:
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
配置Docker用戶組:
sudo usermod -aG docker $USER
拉取Jenkins Docker鏡像:
docker pull jenkins/jenkins:lts
運行Jenkins容器:
docker run -d --name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-v /path/to/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:lts
/path/to/jenkins_home
為您的宿主機目錄,用于持久化Jenkins數據。訪問Jenkins:
http://<服務器IP>:8080
,您將看到Jenkins的歡迎頁面。解鎖Jenkins:
docker logs jenkins
Please use the following password to proceed to installation
開頭的行,該行提供了解鎖密碼。安裝插件和配置:
配置Docker插件:
安裝Docker插件:
配置Docker插件:
編寫Jenkinsfile:
Jenkinsfile
的文件,內容如下:pipeline {
agent any
environment {
REGISTRY = "registry.mycompany.com"
IMAGE_NAME = "myapp"
IMAGE_TAG = "v1.0.${BUILD_NUMBER}"
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build Docker Image') {
steps {
sh """
docker build -t ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} .
"""
}
}
stage('Push to Registry') {
steps {
withCredentials([usernamePassword(credentialsId: 'docker-registry', usernameVariable: 'USER', passwordVariable: 'PASS')]) {
sh """
echo "$PASS" | docker login ${REGISTRY} -u "$USER" --password-stdin
docker push ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
"""
}
}
}
stage('Deploy') {
steps {
sh """
docker pull ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
docker stop myapp || true
docker rm myapp || true
docker run -d --name myapp -p 8080:8080 ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
"""
}
}
}
}
創建Jenkins任務:
通過以上步驟,您可以在Linux中成功地將Jenkins與Docker集成,實現自動化構建、測試和部署流程。