2026-06-29 13:17:58 +08:00

5.6 KiB
Raw Blame History

minex-invest-task-admin

项目简介

minex-invest-task-admin 是基于 Spring Boot 3.2 和 JDK 21 的后端服务,提供投资相关的业务 API。 核心特点:

支持 Docker 容器化部署。

环境要求

操作系统:Linux / Windows

JDK:21(OpenJDK 或 Oracle JDK 均可)

application.yml 配置

spring: application: name: minex-invest-task-admin

config:
    import: "optional:nacos:minex-invest-task-admin.yml?server-addr=${NACOS_DISCOVERY_SERVER_ADDR}&namespace=${NACOS_DISCOVERY_NAMESPACE}&username=${NACOS_DISCOVERY_USERNAME}&password=${NACOS_DISCOVERY_PASSWORD}&group=DEFAULT_GROUP"

cloud:
    nacos:
        config:
            enable-local-cache: false
            server-addr: ${nacos.discovery.server-addr}
            username: ${nacos.discovery.username}
            password: ${nacos.discovery.password}
            access-key: ${nacos.discovery.access-key}
            secret-key: ${nacos.discovery.secret-key}
            namespace: ${nacos.discovery.namespace}
            file-extension: yml
            shared-configs:
                - data-id: minex-invest-task-admin.yml
                refresh: true

nacos 配置

-------------------- web --------------------

server: port: 8080 servlet: context-path: /xxl-job-admin

-------------------- actuator --------------------

management: endpoints: web: base-path: /actuator health: mail: enabled: false

-------------------- resources --------------------

spring: mvc: servlet: load-on-startup: 0 static-path-pattern: /static/** web: resources: static-locations: classpath:/static/ freemarker: templateLoaderPath: classpath:/templates/ suffix: .ftl charset: UTF-8 request-context-attribute: request settings: number_format: 0.########## new_builtin_class_resolver: safer

datasource: type: com.zaxxer.hikari.HikariDataSource url: jdbc:mysql://18.178.59.115:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai username: root password: D22+51Ce=3d driver-class-name: com.mysql.cj.jdbc.Driver hikari: minimum-idle: 10 maximum-pool-size: 30 auto-commit: true idle-timeout: 30000 pool-name: HikariCP max-lifetime: 900000 connection-timeout: 10000 connection-test-query: SELECT 1 validation-timeout: 1000

mail: host: smtp.qq.com port: 25 username: xxx@qq.com from: xxx@qq.com password: xxx properties: mail.smtp.auth: true mail.smtp.starttls.enable: true mail.smtp.starttls.required: true mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory

-------------------- mybatis --------------------

mybatis: mapper-locations: classpath:/mapper/*Mapper.xml

-------------------- xxl-job --------------------

xxl: job: accessToken: default_token timeout: 3 i18n: zh_CN triggerpool: fast: max: 200 slow: max: 100 logretentiondays: 30

-------------------- xxl-sso --------------------

xxl-sso: token: key: xxl_job_login_token timeout: 604800000 client: excluded: paths: login: path: /auth/login

Maven:3.8+ 数据库:MySQL 8.x

Docker:20.x 以上(用于容器化部署)

端口:8089(可自定义)

Maven 构建 克隆项目 git clone cd minex-invest-server-api

编译打包 mvn clean install

编译完成后,生成 jar 文件:target/xxl-job-admin-3.2.0.jar

选择环境 set JAVA_HOME=C:\Program Files\Java\jdk-21 set PATH=%JAVA_HOME%\bin;%PATH% java -version

运行 java -jar target\xxl-job-admin-3.2.0.jar --spring.profiles.active=prod

Docker 部署 Dockerfile 说明

基于官方 OpenJDK 21 镜像:eclipse-temurin:21-jdk-jammy

工作目录:/app

复制 jar 文件到 /app

暴露端口:8089

支持通过环境变量 SPRING_PROFILES_ACTIVE 切换 Spring 配置环境(dev / prod)

FROM eclipse-temurin:21-jdk-jammy WORKDIR /app COPY xxl-job-admin-3.2.0.jar ./ EXPOSE 8089 ENV SPRING_PROFILES_ACTIVE=prod CMD ["sh", "-c", "java -jar xxl-job-admin-3.2.0.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE}"]

示例启动脚本: #!/bin/bash

-- coding: utf-8 --

项目目录

cd /home/java/ || { echo "目录不存在: /home/java/"; exit 1; }

容器名和镜像名

CONTAINER_NAME="xxl-job-admin" IMAGE_NAME="xxl-job-admin-3.2.0"

宿主机 host 映射(可选,根据需要调整)

HOST_MAPPINGS=( "bos-asset.minex.support:52.77.33.242" "bos-quote.minex.support:52.77.33.242" )

echo "===== 停止并删除旧容器 =====" if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then docker stop $CONTAINER_NAME docker rm $CONTAINER_NAME echo "旧容器已删除" else echo "不存在旧容器" fi

echo "===== 删除旧镜像 =====" if [ "$(docker images -q $IMAGE_NAME)" ]; then docker rmi -f $IMAGE_NAME echo "旧镜像已删除" else echo "不存在旧镜像" fi

echo "===== 构建新镜像 =====" docker build -t $IMAGE_NAME . if [ $? -ne 0 ]; then echo "镜像构建失败" exit 1 fi

echo "===== 启动新容器 ====="

拼接 --add-host 参数

ADD_HOST_ARGS="" for mapping in "${HOST_MAPPINGS[@]}"; do ADD_HOST_ARGS+=" --add-host $mapping" done

启动容器

docker run -d -p 8080:8080
--name $CONTAINER_NAME
$ADD_HOST_ARGS
-e SPRING_PROFILES_ACTIVE=prod
-e SPRING_CLOUD_NACOS_CONFIG_ENABLED=false
$IMAGE_NAME

if [ $? -ne 0 ]; then echo "容器启动失败" exit 1 fi

echo "===== XXL-JOB Admin 发布完成 ====="