Jenkins automated deployment
Jenkins自动化部署
docker方式安装Jenkins
拉取Docker仓库的Jenkins镜像
1
docker pull jenkins/jenkins
运行Jenkins容器
1
docker run -d -u root -p 9999:8080 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v "$HOME":/home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins
浏览器输入Jenkins应用地址(IP为示例服务器IP)
1
http://39.108.168.201:9999
获取管理员初始化密码,输入登录页面中
1
tail /var/jenkins_home/secrets/initialAdminPassword
安装推荐插件(需翻墙安装)
创建管理员账户
配置全局安全配置,取消勾选跨站请求伪造保护
Docker发布SpringBoot应用
插件管理
安装mvn插件
全局工具配置
Maven配置,优先在宿主机对应Jenkins容器挂载的文件目录下,安装Maven
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23# 进入挂载文件目录
cd /var/jenkins_home/maven
# 下载Maven压缩包
wget https://mirrors.tuna.tsinghua.edu.cn/apache-maven-3.6.3-bin.tar.gz
# 解压Maven压缩包
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C .
# 宿主机配置Maven环境变量【可不配置】
vim /etc/profile
MAVEN_HOME=/var/jenkins_home/maven/apache-maven-3.6.3
export MAVEN_HOME
PATH=$MAVEN_HOME/bin:$PATH
export PATH
source /etc/profile
# Jenkis配置Maven环境变量,由于Jenkins在使用mvn时候是no-login方式,所以source刷新环境变量不生效,解决这个问题可以在获取官方Jenkins镜像的基础上指定Maven环境构建新的镜像或者在Jenkin上指定全局变量值(下面采用这种方式)
# docker -exec -it jenkins /bin/bash
# apt-get update
# apt-get install vim
# vim /etc/profile
# MAVEN_HOME=/var/jenkins_home/maven/apache-maven-3.6.3
# export MAVEN_HOME
# PATH=$MAVEN_HOME/bin:$PATH
# export PATH
# source /etc/profileJDK配置,选择自动安装方式
Git配置,选择自动安装方式
系统管理
设置maven全局属性
设置SSH服务器配置
新建任务
创建流水线
配置流水线
SpringBoot项目/build/pro/目录下编写JenkinsFile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40pipeline {
agent any
stages {
stage('compile') {
steps {
sh 'mvn clean package -Ppro -Dmaven.test.skip=true'
}
}
stage('package') {
steps {
sh 'cp target/springboot-0.0.1-SNAPSHOT.jar build/pro/'
}
}
stage('node1-deploy') {
steps {
sshPublisher(
continueOnError: false, failOnError: true,
publishers: [
sshPublisherDesc(
configName: "Server1",
transfers: [
sshTransfer(
sourceFiles: "build/pro/*",
removePrefix: "build/pro/",
remoteDirectory: "dockerfile/springboot/",
execCommand: "cd /data/dockerfile/springboot && chmod a+x run.sh && ./run.sh"
)
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: false
)
]
)
}
}
}
}SpringBoot项目/build/pro/目录下编写DockerFile
1
2
3
4
5FROM java:8
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ADD springboot-0.0.1-SNAPSHOT.jar /app.jar
EXPOSE 8081
ENTRYPOINT ["/usr/bin/java","-jar", "-Xmx4g", "-Xms4g", "-Xmn1536m", "-Dspring.profiles.active=pro","app.jar"]SpringBoot项目/build/pro/目录下编写run.sh
发布SpringBoot应用
Nginx发布前端应用
jenkins安装nodejs插件
jenkins配置nodejs全局工具
jenkins系统配置SSH Server
编写jenkins任务
创建自由风格软件项目
General设置
源码管理设置
构建环境设置
构建设置
构建后操作设置
编写nginx转发配置
编写nginx.conf配置文件
1
2
3
4
5
6
7
8
9
10
11vim /etc/nginx/nginx.conf
server {
listen 3000;
server_name front_server_vue-cli-demo;
index index.html;
root /data/nginxfile/vue-cli-demo;
location / {
}
}刷新nginx.conf配置文件
1
2nginx -s reload
重启nginx
1
2service nginx restart
浏览器打开前端地址,如http://39.108.168.201:3000/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 后端学习手记!




























