核心组件:
# 安装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
密钥配置:
- 生成SSH密钥对:
ssh-keygen -t rsa -b 4096 - 将公钥添加至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字)
常见问题:
- 权限拒绝:sudo usermod -aG docker jenkins # 添加Jenkins到docker组 systemctl restart jenkins
- 内存溢出:vm.max_map_count=262144
原创文章,作者:全球主机资源网,如若转载,请注明出处:https://hotcom.net/471.html