在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.yml
stages:
- 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流程,提升开发与部署效率。