下面按**“从零在 Ubuntu 上集成 Jenkins 做自动化部署”的思路,给你一个清晰、可落地的流程。你可以根据自己是前端 / Java / Python / Docker 项目**做适当裁剪。
sudo apt update
sudo apt install -y openjdk-17-jdk
java -version
sudo apt install -y curl
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update
sudo apt install -y jenkins
sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins
sudo ufw allow 8080
浏览器访问:
http://<服务器IP>:8080
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
粘贴密码 → 安装推荐插件 → 创建管理员用户
Manage Jenkins → Plugins
which git
Jenkins → Global Tool Configuration → Git
Jenkins → Credentials → System → Global
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
git branch: 'main',
url: 'git@github.com:user/project.git'
}
}
stage('构建') {
steps {
sh 'npm install && npm run build'
}
}
stage('部署') {
steps {
sshagent(['deploy-server']) {
sh '''
scp -r dist/* user@server:/var/www/html/
'''
}
}
}
}
}
pipeline {
agent any
stages {
stage('拉代码') {
steps {
git 'https://github.com/user/app.git'
}
}
stage('构建镜像') {
steps {
sh 'docker build -t myapp .'
}
}
stage('运行容器') {
steps {
sh '''
docker stop myapp || true
docker rm myapp || true
docker run -d -p 8080:80 --name myapp myapp
'''
}
}
}
}
sudo apt install nginx
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8080;
}
}
| 场景 | 推荐方式 |
|---|---|
| 前端静态 | Jenkins + SCP + Nginx |
| Java | Jenkins + Maven + Systemd |
| Docker | Jenkins + Docker |
| K8s | Jenkins + kubectl |
| 多服务器 | Jenkins + Ansible |
sudo journalctl -u jenkins
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo usermod -aG docker jenkins
sudo systemctl restart jenkins
如果你愿意,可以告诉我:
我可以直接给你一套可用的 Jenkinsfile + 部署脚本。