在Debian上使用Docker進行持續集成(CI)與部署(CD),可結合Jenkins、GitLab CI/CD等工具,核心流程如下:
安裝Docker
在Debian服務器上執行以下命令安裝Docker:
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker && sudo systemctl enable docker
(可選)安裝Docker Compose用于多容器管理:
sudo apt install -y docker-compose
選擇CI工具
.gitlab-ci.yml定義流程。創建Jenkinsfile
在項目根目錄編寫Jenkinsfile,定義構建、測試、部署步驟:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'docker build -t my-app:latest .' // 構建鏡像
}
}
stage('Test') {
steps {
sh 'docker run my-app:latest pytest' // 運行測試
}
}
stage('Deploy') {
steps {
withCredentials([usernamePassword(credentialsId: 'docker-hub', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) {
sh 'docker login -u $DOCKER_USER -p $DOCKER_PASS'
sh 'docker push my-app:latest' // 推送鏡像到倉庫
sh 'ssh user@server "docker pull my-app:latest && docker-compose up -d"' // 部署到服務器
}
}
}
}
}
配置Docker憑證
在Jenkins“憑據”中添加Docker Hub或私有倉庫的用戶名、密碼,用于鏡像推送。
.gitlab-ci.ymlstages:
- build
- test
- deploy
build_job:
stage: build
script:
- docker build -t registry.example.com/my-app:latest .
- docker push registry.example.com/my-app:latest
deploy_job:
stage: deploy
script:
- ssh user@server "docker pull registry.example.com/my-app:latest && docker-compose up -d"
only:
- main # 僅在main分支觸發
使用Docker Compose部署
在服務器上編寫docker-compose.yml,定義服務、網絡等:
version: '3'
services:
app:
image: my-app:latest
ports:
- "80:80"
volumes:
- ./data:/app/data
通過docker-compose up -d啟動服務。
自動化觸發
docker stats查看資源使用情況。docker pull my-app:v1.0 # 拉取舊版本
docker-compose down && docker-compose up -d # 重啟服務
通過以上步驟,可實現Debian環境下基于Docker的自動化CI/CD流程,提升開發與部署效率。