springboot+gradle+docker+nginx项目部署到ubuntu云服务器.md
安装gradle
下载,解压到指定目录
1
2
3
4wget https://downloads.gradle-dn.com/distributions/gradle-7.4-bin.zip
unzip -d /opt/gradle gradle-7.4-bin.zip
#查看是否解压成功
ls /opt/gradle/gradle-7.6配置环境变量
1
2
3sudo vim /etc/profile.d/gradle.sh
sudo chmod +x /etc/profile.d/gradle.sh
source /etc/profile.d/gradle.shgradle.sh文件内容
1
2export GRADLE_HOME=/opt/gradle/gradle-7.4
export PATH=${GRADLE_HOME}/bin:${PATH}验证安装
1
gradle -v
构建jar包
配置文件-build.gradle 文件
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67plugins {
id 'org.springframework.boot' version '2.6.11'
id 'io.spring.dependency-management' version '1.0.13.RELEASE'
id 'java'
}
jar {
enabled = true
}
bootJar {
archivesBaseName = 'boss-server' // jar包名
manifest {
attributes "Manifest-Version": 1.0,
'Start-Class': 'com.lcf.BlueApplication' // springboot项目的启动类
}
}
group = 'com.boss'
//version = '1.0.0'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.7.5'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.21'
implementation group: 'com.baomidou', name: 'mybatis-plus-boot-starter', version: '3.5.2'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: '2.7.3'
implementation group: 'com.baomidou', name: 'mybatis-plus-generator', version: '3.3.0'
implementation group: 'org.apache.velocity', name: 'velocity-engine-core', version: '2.3'
compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.24'
annotationProcessor 'org.projectlombok:lombok:1.18.24'
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.10.5'
implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1'
implementation group: 'com.auth0', name: 'java-jwt', version: '3.19.2'
// https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2
implementation group: 'com.alibaba.fastjson2', name: 'fastjson2', version: '2.0.20'
// https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api
implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
implementation 'cn.hutool:hu
tool-all:5.8.11'
}
test {
useJUnitPlatform()
}jar包构建命令
1
gradle bootJar
构建容器镜像
创建Dockerfile 文件
1
vi Dockerfile
修改 Dockerfile 文件并保存,将jar包复制到当前目录
1
2
3
4
5
6
7
8
9
10# 拉取一个jdk为1.8的docker镜像
FROM java:8
# 声明作者是lcf
MAINTAINER lcf
# 前一个 ROOT.jar 为上传的jar包,后一个 ROOT.jar 是将服务器中jar包对应在容器中运行的jar包名称
ADD ROOT.jar ROOT.jar
# 容器暴露的端口号,需要与jar包在容器中运行使用端口号一致
EXPOSE 8080
# 容器启动之后执行的命令, java -jar ROOT.jar
ENTRYPOINT ["java","-jar","ROOT.jar"]执行命令,构建镜像, . 表示Dockerfile在当前目录
1
docker build -t boss-server .
构建容器
1
2# --restart=always 表示docker容器在停止或服务器开机之后会自动重新启动
docker run -d --restart=always --name demo -p 8080:8080 -v /docker/logs/test:/logs boss-server验证是否成功
1
docker ps
nginx 配置反向代理
问题:转发后多了一个反斜杠
解决:使用正则替换前缀
1 | location /pager-server { |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.