Docker 镜像

docker pull registry.cn-hangzhou.aliyuncs.com/an1-public/btlockmp:1.1.3

自建镜像

注意, v1.1.2 版本以上才能使用环境变量

目录结构

下载程序并按以下目录结构存放文件

./app/btlockmp
./app/config.toml
./Dockerfile

DockerFile

FROM alpine:3.20.1
LABEL authors="eddy@an1ai"

# 安装必要的运行时依赖(如 CA 证书)
RUN apk --no-cache add ca-certificates tzdata && update-ca-certificates
# 设置时区(可选)
ENV TZ=Asia/Shanghai
# 设置工作目录
WORKDIR /app
# 复制可执行文件
COPY ./app /app
RUN chmod +x /app/btlockmp
# 创建非 root 用户(增强安全性)
RUN addgroup -S an1group && \
    adduser -S an1 -G an1group && \
    chown -R an1:an1group /app
USER an1

# 暴露端口
EXPOSE 8080
EXPOSE 1883

# 启动应用
ENTRYPOINT ["./btlockmp"]

创建镜像

docker build -t btlockmp:1.1.2 .

运行容器

需要修改redis信息数据库信息

docker run --name btlockmp -d \
-e BLE_REDIS_ADDRESS=192.168.31.83:6379 \
-e BLE_DB_POSTGRES="host=192.168.31.83 user=an1 password=an1password dbname=an1 port=9102 connect_timeout=5 sslmode=disable TimeZone=Asia/Shanghai"  \
-p 9080:8080 -p 9081:1883 --restart=always  \
--log-opt max-size=10m --log-opt max-file=3 \
btlockmp:1.1.2

可用的环境变量

其中 redis 信息数据库信息 是必须设置的环境变量

变量名 默认值 描述
BLE_REDIS_ADDRESS 127.0.01:6379 redis 地址
BLE_REDIS_PASSWORD redis 密码
BLE_REDIS_DB 0 redis 数据库
BLE_REDIS_PREFIX An1ai redis 键值的前缀
BLE_DB_POSTGRES postgres数据库连接字符串,格式如下:host=192.168.10.83 user=an1 password=an1password dbname=an1 port=5432 connect_timeout=5 sslmode=disable TimeZone=Asia/Shanghai
BLE_DB_MYSQL mysql数据库连接字符串,格式如下: username:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local
BLE_SETTING_WINDOW_SECONDS 1 统计时间段(秒)
BLE_SETTING_MAX_REQUESTS 2 统计时间段内的API最大调用数量
BLE_SETTING_STORE_LOG true 存储日志在数据库
BLE_SETTING_STORE_DAYS 30 日志存储天数
BLE_SETTING_BATTERY_ALERT false 启用电量告警提示
BLE_SETTING_BATTERY_LOW 20 低电量告警数值
BLE_JWT_SECRET_KEY eddy.at.an1ai.com JWT SECRET KEY
BLE_LOG_ERROR_LOG ./logs/err.log 异常日志保存路径
BLE_LOG_OTHER_LOG ./logs/other.log 日常日志保存路径
BLE_LOG_LEVEL debug 日志级别,有 debug,info,warn,error
BLE_LOG_MAX_BACKUPS 30 日志保留多少个备份 (数量超过天数会删除)
BLE_LOG_MAX_AGE 30 日志保留多少天(数量超过备份数会删除)
BLE_LOG_MAC_SIZE 10 每个文件最大容量(M)
作者:阮德明  创建时间:2025-06-25 16:20
最后编辑:阮德明  更新时间:2025-11-17 16:50