chore: 并入 iotlcm-admin-svr 历史到 admin-svr/(原提交 49818c6)
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
ARG BASE_REGISTRY=docker.io/library
|
||||
FROM ${BASE_REGISTRY}/golang:1.25-alpine AS builder
|
||||
|
||||
LABEL stage=gobuilder
|
||||
|
||||
ENV GOPROXY=https://goproxy.cn,direct
|
||||
ENV TZ=Asia/Shanghai
|
||||
ENV CGO_ENABLED=1
|
||||
ENV GOOS=linux
|
||||
ENV GOARCH=amd64
|
||||
|
||||
# 基础镜像源:阿里云 Alpine 镜像站曾出现索引与实际文件不同步(APKINDEX 标 r24、
|
||||
# 目录只有 r23,导致 musl/musl-dev 拉取 404)。改用清华源,可用性更稳。
|
||||
RUN sed -i 's#https://dl-cdn.alpinelinux.org/alpine#https://mirrors.tuna.tsinghua.edu.cn/alpine#g' /etc/apk/repositories && \
|
||||
apk add --no-cache gcc musl-dev git tzdata expect
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
COPY go.mod go.sum ./
|
||||
|
||||
RUN go mod download
|
||||
|
||||
COPY . .
|
||||
|
||||
ARG BuildVersion=unknown
|
||||
ARG CommitID=unknown
|
||||
ARG BuildTime=unknown
|
||||
|
||||
RUN set -euxo pipefail && \
|
||||
pwd && ls -la && \
|
||||
go build -v \
|
||||
-o /build/iotlcmadmin_svc \
|
||||
-ldflags "-X main.BuildVersion=${BuildVersion} -X main.CommitID=${CommitID} -X main.BuildTime=${BuildTime}" \
|
||||
.
|
||||
|
||||
FROM ${BASE_REGISTRY}/alpine:3.23 AS alpine
|
||||
|
||||
RUN apk add --no-cache ca-certificates tzdata
|
||||
|
||||
ENV TZ=Asia/Shanghai
|
||||
|
||||
EXPOSE 13100
|
||||
|
||||
WORKDIR /app
|
||||
COPY --from=builder /build/iotlcmadmin_svc /app/iotlcmadmin_svc
|
||||
COPY --from=builder /build/build/config.example.yaml /app/config/config.yaml
|
||||
|
||||
CMD ["./iotlcmadmin_svc"]
|
||||
@@ -0,0 +1,126 @@
|
||||
# config.yaml 配置文件
|
||||
# @Link https://github.com/xiujiecn/xiu-admin
|
||||
# @Copyright Copyright (c) 2025 LiXiujie
|
||||
# @Author Lxj <xxx@example.com>
|
||||
# @License https://github.com/xiujiecn/xiu-admin/blob/master/LICENSE
|
||||
# 系统配置
|
||||
system:
|
||||
name: "IotLCM"
|
||||
version: "1.0"
|
||||
description: "IotLCM Server"
|
||||
gfmode: "dev"
|
||||
upload:
|
||||
local:
|
||||
path: "/app/upload"
|
||||
|
||||
workerDiagnostic:
|
||||
enabled: true
|
||||
|
||||
batch:
|
||||
allocate:
|
||||
chunkSize: 5000
|
||||
maxFileSize: 52428800
|
||||
# 服务配置
|
||||
server:
|
||||
# 基本配置
|
||||
address: ":8008"
|
||||
# 接口文档
|
||||
openapiPath: "/api.json" # OpenAPI接口文档地址
|
||||
swaggerPath: "/swagger" # 内置SwaggerUI展示地址
|
||||
# 静态服务配置
|
||||
indexFiles: ["index.html","index.htm"] # 自动首页静态文件检索。默认为["index.html", "index.htm"]
|
||||
indexFolder: false # 当访问静态文件目录时,是否展示目录下的文件列表。默认关闭,那么请求将返回403
|
||||
# serverRoot: "/app/public" # 静态文件服务的目录根路径,配置时自动开启静态文件服务。默认关闭
|
||||
# searchPaths: ["/resource/public"] # 提供静态文件服务时额外的文件搜索路径,当根路径找不到时则按照顺序在搜索目录查找。默认关闭
|
||||
fileServerEnabled: true
|
||||
initLoadMemoryDB: false # 是否初始化内存数据库,默认关闭
|
||||
|
||||
# 文件上传配置
|
||||
maxHeaderBytes: "20KB"
|
||||
clientMaxBodySize: "200MB"
|
||||
|
||||
# 日志配置
|
||||
logger:
|
||||
path: "/app/logs" # 日志文件路径。默认为空,表示关闭,仅输出到终端
|
||||
file: "{Y-m-d-H}.log" # 日志文件格式。默认为"{Y-m-d}.log"
|
||||
prefix: "" # 日志内容输出前缀。默认为空
|
||||
level: "dev" # 日志输出级别
|
||||
timeFormat: "2006-01-02T15:04:05" # 自定义日志输出的时间格式,使用Golang标准的时间格式配置
|
||||
ctxKeys: [] # 自定义Context上下文变量名称,自动打印Context的变量到日志中。默认为空
|
||||
header: true # 是否打印日志的头信息。默认true
|
||||
stdout: true # 日志是否同时输出到终端。默认true
|
||||
rotateSize: 0 # 按照日志文件大小对文件进行滚动切分。默认为0,表示关闭滚动切分特性
|
||||
rotateExpire: 0 # 按照日志文件时间间隔对文件滚动切分。默认为0,表示关闭滚动切分特性
|
||||
rotateBackupLimit: 0 # 按照切分的文件数量清理切分文件,当滚动切分特性开启时有效。默认为0,表示不备份,切分则删除
|
||||
rotateBackupExpire: 0 # 按照切分的文件有效期清理切分文件,当滚动切分特性开启时有效。默认为0,表示不备份,切分则删除
|
||||
rotateBackupCompress: 0 # 滚动切分文件的压缩比(0-9)。默认为0,表示不压缩
|
||||
rotateCheckInterval: "1h" # 滚动切分的时间检测间隔,一般不需要设置。默认为1小时
|
||||
stdoutColorDisabled: false # 关闭终端的颜色打印。默认开启
|
||||
writerColorEnable: false # 日志文件是否带上颜色。默认false,表示不带颜色
|
||||
|
||||
# JWT配置
|
||||
jwt:
|
||||
signingKey: "${JWT_SIGNING_KEY}"
|
||||
expiresTime: 7d
|
||||
bufferTime: 1d
|
||||
issuer: iotlcm # 发行人
|
||||
|
||||
# 验证码配置
|
||||
captcha:
|
||||
keyLong: 6
|
||||
imgWidth: 240
|
||||
imgHeight: 80
|
||||
openCaptcha: 0
|
||||
openCaptchaTimeout: 3600
|
||||
|
||||
database:
|
||||
logger:
|
||||
path: "/app/logs"
|
||||
level: "all"
|
||||
stdout: true
|
||||
default: # 分组名称,可自定义,默认为default
|
||||
link: "${DB_DSN}"
|
||||
debug: true #开启调试模式
|
||||
charset: "utf8mb4" # (可选)数据库编码(如: utf8mb4/utf8/gbk/gb2312),一般设置为utf8mb4。默认为utf8。
|
||||
dryRun: false #ORM空跑(只读不写)
|
||||
maxIdle: 30 #连接池最大闲置的连接数
|
||||
maxOpen: 100 #连接池最大打开的连接数
|
||||
maxLifetime: 120 #(单位秒)连接对象可重复使用的时间长度
|
||||
memorydb:
|
||||
# SQLite 内存库供本地启动及测试使用,无需外部凭据。
|
||||
link: "sqlite::@file(:memory:)"
|
||||
debug: true
|
||||
maxIdle: 1
|
||||
maxOpen: 1
|
||||
maxLifetime: 30
|
||||
|
||||
# 缓存配置
|
||||
cache:
|
||||
adapter: "redis" # 缓存适配器,支持:file|redis
|
||||
fileDir: "/app/cache" # 缓存文件目录
|
||||
|
||||
# Redis 配置示例
|
||||
redis:
|
||||
# 单实例配置
|
||||
default:
|
||||
mode: "single" #redis模式,支持:single|cluster|sentinel
|
||||
sentinelMasterName: "iotlcm-master" #哨兵模式主节点名称
|
||||
address: 127.0.0.1:6379
|
||||
db: 0
|
||||
pass: "${REDIS_PASSWORD}"
|
||||
minIdle: 5 #最小空闲连接数
|
||||
maxIdle: 30 #允许闲置的最大连接数
|
||||
maxActive: 5000 #最大活跃连接数
|
||||
idleTimeout: "60s" #连接最大空闲时间,使用时间字符串例如30s/2m/2d
|
||||
ClientName: "SystemCache"
|
||||
|
||||
|
||||
# 路由配置
|
||||
router:
|
||||
# 不需要验证登录的路由地址
|
||||
exceptLogin:
|
||||
- /api/v1/system/auth/login
|
||||
- /api/v1/system/auth/refresh
|
||||
- /api/v1/system/captcha
|
||||
- /api/v1/system/auth/getTenantList
|
||||
|
||||
Reference in New Issue
Block a user