下面给你一个从 0 到 1 用 Jenkins 实现自动化部署服务器的完整思路和常见做法,适合后端服务 / 前端项目 / 微服务等场景。
代码提交 (Git)
↓
Jenkins 拉取代码
↓
编译 / 构建(Maven / Gradle / npm)
↓
打包(jar / war / docker image)
↓
传输到目标服务器
↓
停止旧服务 / 启动新服务
↓
部署完成(可通知)
# Ubuntu 示例
sudo apt update
sudo apt install openjdk-11-jdk -y
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins -y
访问:
http://服务器IP:8080
Jenkins → Manage Jenkins → Configure System
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
git branch: 'main', url: 'git@github.com:user/project.git'
}
}
stage('构建') {
steps {
sh 'mvn clean package -DskipTests'
}
}
stage('部署') {
steps {
sshPublisher(
publishers: [
sshPublisherDesc(
configName: 'prod-server',
transfers: [
sshTransfer(
sourceFiles: 'target/app.jar',
remoteDirectory: '/opt/app',
execCommand: '''
pkill -f app.jar
nohup java -jar /opt/app/app.jar > app.log 2>&1 &
'''
)
]
)
]
)
}
}
}
}
✅ 优点:简单、直观
❌ 缺点:脚本维护成本高
代码 → 构建镜像 → 推送到仓库 → 服务器拉取并运行
pipeline {
agent any
stages {
stage('Build Image') {
steps {
sh 'docker build -t myapp:latest .'
}
}
stage('Deploy') {
steps {
sh '''
docker stop myapp || true
docker rm myapp || true
docker run -d --name myapp -p 8080:8080 myapp:latest
'''
}
}
}
}
✅ 环境一致
✅ 易回滚
❌ 服务器需支持 Docker
适合微服务:
kubectl apply -f deployment.yamlhttp://jenkins/ip/github-webhook/triggers {
cron('H/30 * * * *')
}
post {
success {
echo '部署成功'
}
failure {
echo '部署失败'
}
}
✅ 使用 Pipeline + Jenkinsfile
✅ 密钥使用 Credentials
✅ 不同环境用不同分支(dev / test / prod)
✅ 日志统一收集
✅ 重要服务加健康检查
如果你愿意,可以告诉我:
我可以直接帮你写可用的 Jenkinsfile + 部署脚本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。