安装gradle

  • 下载,解压到指定目录

    1
    2
    3
    4
    wget 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
    3
    sudo vim /etc/profile.d/gradle.sh
    sudo chmod +x /etc/profile.d/gradle.sh
    source /etc/profile.d/gradle.sh

    gradle.sh文件内容

    1
    2
    export 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
    67
    plugins {
    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
2
3
4
5
location /pager-server {
rewrite ^/pager-server/?(.*)$ /$1 break;
proxy_pass http://localhost:8080/ ;
proxy_redirect default;
}