Docker+Jenkins自动化部署实战

核心组件

# 安装Docker
sudo apt install docker.io
systemctl enable docker

# 创建Jenkins容器
docker run -d -p 8080:8080 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

密钥配置

  1. 生成SSH密钥对:ssh-keygen -t rsa -b 4096
  2. 将公钥添加至GitHub/GitLab的Deploy Keys

二、流水线构建(400字)

Jenkinsfile 核心配置

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git url: 'git@github.com:your/repo.git', branch: 'main'
            }
        }
        stage('Build') {
            steps {
                sh 'mvn clean package'  // Java示例
            }
        }
        stage('Docker Build') {
            steps {
                sh 'docker build -t app-image:${BUILD_ID} .'
            }
        }
        stage('Deploy') {
            steps {
                sh 'docker stop app-container || true'
                sh 'docker run -d --rm -p 8080:8080 --name app-container app-image:${BUILD_ID}'
            }
        }
    }
}

参数化构建技巧

  • 使用choice参数选择部署环境(dev/staging/prod)
  • 通过withCredentials绑定数据库密码

三、高级实践(300字)

多阶段构建优化镜像

dockerfile

# 构建阶段
FROM maven:3.8-jdk-11 AS build
COPY . /app
RUN mvn package

# 运行阶段
FROM openjdk:11-jre-slim
COPY --from=build /app/target/*.jar /app.jar
CMD ["java", "-jar", "/app.jar"]

监控集成

  • Prometheus指标暴露:-javaagent:jmx_prometheus.jar=8081:config.yaml
  • Grafana看板模板ID:13671

四、排错指南(200字)

常见问题

  1. 权限拒绝:sudo usermod -aG docker jenkins # 添加Jenkins到docker组 systemctl restart jenkins
  2. 内存溢出:vm.max_map_count=262144

原创文章,作者:全球vps测评资讯,如若转载,请注明出处:https://www.druglion.com/524.html

(0)
全球vps测评资讯全球vps测评资讯
上一篇 2025年 7月 18日 下午3:19
下一篇 2025年 7月 18日 下午4:39

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注