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