Kill Bill 0.24.22 Docker Compose 部署指南

Kill Bill 0.24.22 三件套(核心 + KAUI + MariaDB)Compose 一键部署:JVM 堆 256-512MB 调优实测(TOMCAT_JAVA_XMS/XMX 注入与 jps -v 验证)、管理口令注入、租户初始化、数据持久化与销毁重建恢复闭环,附环境变量表与运维命令。

Kill BillKill Bill订阅计费REST API自托管2026/10/24

Kill Bill 0.24.22 Docker Compose 部署指南

目标:在一台 Ubuntu 服务器上用 Docker Compose 一键编排 Kill Bill 订阅计费平台的最小可用生产形态(Kill Bill 核心 + MariaDB 数据库 + KAUI 管理界面三件套),完成 JVM 堆内存调优、管理口令注入、数据持久化与销毁重建恢复闭环,全部步骤与回显已在 Ubuntu 22.04 + Kill Bill 0.24.22 + KAUI 4.0.31 环境实测通过。

一、环境信息

本文所有命令与输出均在以下环境实测(2026-10-23):

  • 操作系统:Ubuntu 22.04.4 LTS(内核 6.8.0-138-generic)
  • Docker:Docker version 29.8.1, build 4a63305(docker --version 实测)
  • Docker Compose:Docker Compose version v5.5.1(docker compose version 实测)
  • Kill Bill 核心:killbill/killbill 0.24.22(官方镜像,2026-09-29 构建)
  • KAUI 管理界面:killbill/kaui 4.0.31(官方镜像,2026-09-29 构建)
  • 数据库:killbill/mariadb 0.24(官方维护的 MariaDB 镜像,内置 Kill Bill 与 KAUI 两库的建库初始化)
  • 规划端口:Kill Bill API 8146(映射服务内 8080)、KAUI Web 8147(映射服务内 8080)
  • 部署目录:/opt/killbill/(Compose 文件与数据目录所在位置)
  • 数据落盘:/opt/killbill/data/(MariaDB 数据目录 bind mount)

二、镜像选型说明

Kill Bill 官方在 Docker Hub 维护三个镜像,Compose 编排各取其一:

服务镜像与标签用途说明
killbillkillbill/killbill:0.24.22计费核心(Java/Tomcat)REST API 监听 8080,路径前缀 /kb/;内含 OSGi 插件运行时
kauikillbill/kaui:4.0.31管理界面(Ruby on Rails)Web 界面监听 8080,通过 HTTP 调用 Kill Bill API
dbkillbill/mariadb:0.24共享数据库官方定制 MariaDB,首次启动自动创建 killbill 与 kaui 两个库

选型要点与解读:三者均出自官方组织 killbill,标签版本需自行配对——核心与 KAUI 的版本号互相独立(核心 0.24.x、KAUI 4.0.x),但官方同日成对发布(本文双版本均为 2026-09-29 构建);数据库镜像官方文档固定使用 killbill/mariadb:0.24,不要用裸 mariadb 官方镜像替代,否则需要手工执行建库与 Flyway 迁移脚本。核心镜像同时提供 latest 标签,但生产部署建议锁定具体版本号,升级时机由自己掌控。

三、前置条件

部署前确认以下事项(每条附验证命令):

  1. Docker 与 Compose 已安装(Docker 19.03+、Compose 1.25.4+ 为官方文档给出的最低线,本文实测为 29.8.1 / v5.5.1):

    docker --version && docker compose version
    

    实测回显:

    Docker version 29.8.1, build 4a63305
    Docker Compose version v5.5.1
    
  2. 内存不低于 4GiB:Kill Bill 核心为 Java 进程,官方文档明确建议宿主机至少 4GiB 内存(不足时核心启动缓慢或崩溃)。本文将堆压到 256–512MB 后整套实测约占用 1.5GiB,2GiB 内存的小规格服务器亦可运行。

  3. 端口未被占用:

    ss -ltn | grep -E ':(8146|8147)\b' || echo '8146/8147 空闲'
    

    实测回显:

    8146/8147 空闲
    
  4. 部署目录已创建:

    mkdir -p /opt/killbill/data
    

四、部署步骤

4.1 编写 docker-compose.yml

在 /opt/killbill/ 下创建 docker-compose.yml(完整内容如下,直接可用):

name: killbill-0.24.22-stack

services:
  killbill:
    image: killbill/killbill:0.24.22
    container_name: killbill-0.24.22-api
    ports:
      - "8146:8080"
    environment:
      - KILLBILL_DAO_URL=jdbc:mysql://db:3306/killbill
      - KILLBILL_DAO_USER=root
      - KILLBILL_DAO_PASSWORD=killbill
      - KILLBILL_CATALOG_URI=SpyCarAdvanced.xml
      - KB_ADMIN_PASSWORD=q1w2e3r4
      - TOMCAT_JAVA_XMS=256m
      - TOMCAT_JAVA_XMX=512m
    depends_on:
      - db
    networks:
      - killbill-net

  kaui:
    image: killbill/kaui:4.0.31
    container_name: killbill-0.24.22-kaui
    ports:
      - "8147:8080"
    environment:
      - KAUI_CONFIG_DAO_URL=jdbc:mysql://db:3306/kaui
      - KAUI_CONFIG_DAO_USER=root
      - KAUI_CONFIG_DAO_PASSWORD=killbill
      - KAUI_KILLBILL_URL=http://killbill:8080
    depends_on:
      - db
    networks:
      - killbill-net

  db:
    image: killbill/mariadb:0.24
    container_name: killbill-0.24.22-db
    volumes:
      - type: bind
        source: /opt/killbill/data
        target: /var/lib/mysql
    expose:
      - "3306"
    environment:
      - MYSQL_ROOT_PASSWORD=killbill
    networks:
      - killbill-net

networks:
  killbill-net:
    driver: bridge

4.2 启动整套服务

cd /opt/killbill && docker compose up -d

实测回显(首次启动需拉取镜像时,up 前段会多出 Pull 阶段;以下为镜像就绪后的启动段):

 Network killbill-02422-stack_killbill-net Creating
 Network killbill-02422-stack_killbill-net Created
 Container killbill-0.24.22-db Creating
 Container killbill-0.24.22-db Created
 Container killbill-0.24.22-api Creating
 Container killbill-0.24.22-kaui Creating
 Container killbill-0.24.22-kaui Created
 Container killbill-0.24.22-db Starting
 Container killbill-0.24.22-db Started
 Container killbill-0.24.22-kaui Starting
 Container killbill-0.24.22-api Starting
 Container killbill-0.24.22-kaui Started
 Container killbill-0.24.22-api Started

4.3 确认服务状态

docker compose ps

实测回显:

NAME                    IMAGE                       COMMAND                  SERVICE    CREATED          STATUS          PORTS
killbill-0.24.22-api    killbill/killbill:0.24.22   "/var/lib/killbill/k…"   killbill   42 seconds ago   Up 41 seconds   0.0.0.0:8146->8080/tcp, [::]:8146->8080/tcp
killbill-0.24.22-db     killbill/mariadb:0.24       "docker-entrypoint.s…"   db         43 seconds ago   Up 41 seconds   3306/tcp
killbill-0.24.22-kaui   killbill/kaui:4.0.31        "/var/lib/kaui/kaui.…"   kaui       42 seconds ago   Up 41 seconds   0.0.0.0:8147->8080/tcp, [::]:8147->8080/tcp

三个服务全部 Up 即编排成功。注意 KAUI 与 Kill Bill 对外端口:Kill Bill API 映射在宿主机 8146,KAUI Web 映射在 8147。

4.4 等待核心就绪(首次启动约 90 秒)

Kill Bill 核心首次启动要执行数据库迁移、OSGi 插件装载与 Tomcat 启动,实测从容器启动到就绪约 80–90 秒。观察日志直到出现 Kill Bill server has started:

docker logs killbill-0.24.22-api 2>&1 | grep 'server has started'

实测回显:

{"@timestamp":"2026-10-23T17:11:03.032Z","message":"Kill Bill server has started","logger_name":"org.killbill.billing.server.filters.KillbillGuiceFilter","thread_name":"main","level":"INFO"}

⚠️ 注意:看到该行之前 API 调用会得到 404 或连接拒绝,属正常现象,不要误判为部署失败。日志中若出现 Communications link failure(连库失败)通常是因为 depends_on 只保证启动顺序、不等待数据库就绪——Kill Bill 会自动重试,几秒后自愈;若反复失败请检查第七节环境变量是否写错。

4.5 验证 API 与管理界面

  1. 验证 API 网关(Swagger 描述文件可达):

    curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8146/swagger
    

    实测回显:

    200
    
  2. 验证认证与计费 API(默认凭据首次登录):Kill Bill API 认证由两部分组成——HTTP Basic 管理员凭据 + 租户级 API 密钥头。本文已通过 KB_ADMIN_PASSWORD 把管理员口令注入为 q1w2e3r4;租户密钥默认不存在(首次部署数据库 tenants 表为空),先创建一个:

    curl -s -X POST 'http://127.0.0.1:8146/1.0/kb/tenants' \
      -u admin:q1w2e3r4 \
      -H 'Content-Type: application/json' \
      -H 'X-Killbill-ApiKey: bob' \
      -H 'X-Killbill-ApiSecret: lazar' \
      -H 'X-Killbill-CreatedBy: admin' \
      --data '{}'
    

    实测回显(HTTP 201,返回体为空):

    http=201
    

    创建成功后,用同一组租户密钥访问目录接口验证:

    curl -s -u admin:q1w2e3r4 -H 'X-Killbill-ApiKey: bob' -H 'X-Killbill-ApiSecret: lazar' 'http://127.0.0.1:8146/1.0/kb/catalog'
    

    实测回显:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <catalogs>
        <versions/>
    </catalogs>
    

    返回空目录列表即认证链路全部打通(目录尚未上传,versions 为空属正常)。

  3. 验证 KAUI 管理界面:

    curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8147/
    

    实测回显:

    302
    

    302 重定向到登录页属预期。浏览器访问 http://<服务器IP>:8147/,用管理员凭据 admin / q1w2e3r4 登录(与 API 的 Basic 凭据同源,由第 4.2 节的 KB_ADMIN_PASSWORD 注入)。

💡 说明:bob / lazar 是 Kill Bill 官方文档与示例惯用的租户密钥组合(X-Killbill-ApiKey / X-Killbill-ApiSecret),生产环境必须替换为自有强密钥;管理员口令同理,KB_ADMIN_PASSWORD 支持任意自定值,本文统一用演示口令 q1w2e3r4。

五、数据持久化说明

数据库数据通过 bind mount 落在宿主机 /opt/killbill/data/,与三个服务的生命周期解耦:

  • MariaDB 数据目录 /var/lib/mysql → 宿主机 /opt/killbill/data/(killbill、kaui 两个库全部在此);
  • Kill Bill 与 KAUI 本身无状态,账务数据全部入库,重建服务不丢数据。

验证方式:先创建一个账户,再整体销毁重建,确认账户仍在(实测实录)。

  1. 创建账户:

    curl -s -X POST 'http://127.0.0.1:8146/1.0/kb/accounts' \
      -u admin:q1w2e3r4 \
      -H 'Content-Type: application/json' \
      -H 'X-Killbill-ApiKey: bob' \
      -H 'X-Killbill-ApiSecret: lazar' \
      -H 'X-Killbill-CreatedBy: admin' \
      --data '{"name":"测试客户A","email":"custa@example.com","currency":"USD"}' \
      -w '\nhttp=%{http_code}\n'
    

    实测回显(HTTP 201,Location 头返回新账户地址):

    http=201
    Location: http://127.0.0.1:8146/1.0/kb/accounts/8fd8790e-44eb-41e1-8202-bcef9c3c8c20
    
  2. 销毁整套服务(含内部网络,数据目录保留):

    cd /opt/killbill && docker compose down
    

    实测回显(输出节选,三个服务与网络依次停止移除):

     Container killbill-0.24.22-kaui Stopped
     Container killbill-0.24.22-kaui Removing
     Container killbill-0.24.22-kaui Removed
     Container killbill-0.24.22-api Stopped
     Container killbill-0.24.22-api Removing
     Container killbill-0.24.22-api Removed
     Container killbill-0.24.22-db Stopped
     Container killbill-0.24.22-db Removing
     Container killbill-0.24.22-db Removed
     Network killbill-02422-stack_killbill-net Removing
     Network killbill-02422-stack_killbill-net Removed
    

    此时确认数据目录仍在:

    ls /opt/killbill/data/
    

    实测回显(输出节选):

    aria_log.00000001
    ib_buffer_pool
    ibdata1
    ib_logfile0
    kaui
    killbill
    mysql
    
  3. 重建整套服务:

    cd /opt/killbill && docker compose up -d
    

    实测回显:

     Network killbill-02422-stack_killbill-net Created
     Container killbill-0.24.22-db Created
     Container killbill-0.24.22-api Created
     Container killbill-0.24.22-kaui Created
     Container killbill-0.24.22-db Started
     Container killbill-0.24.22-kaui Started
     Container killbill-0.24.22-api Started
    

    已有数据的重建跳过了建库迁移,API 约 10 秒即可就绪(实测轮询 catalog 接口 10 秒后返回 200)。

  4. 验证账户恢复:

    curl -s -u admin:q1w2e3r4 -H 'X-Killbill-ApiKey: bob' -H 'X-Killbill-ApiSecret: lazar' \
      'http://127.0.0.1:8146/1.0/kb/accounts/8fd8790e-44eb-41e1-8202-bcef9c3c8c20'
    

    实测回显(输出节选,销毁重建前的账户完整恢复):

    {
        "accountId": "8fd8790e-44eb-41e1-8202-bcef9c3c8c20",
        "name": "测试客户A",
        "externalKey": "8fd8790e-44eb-41e1-8202-bcef9c3c8c20",
        "email": "custa@example.com",
        "currency": "USD",
        "referenceTime": "2026-10-23T17:22:13.000Z"
    }
    

💡 说明:数据库备份直接打包 /opt/killbill/data/ 目录即可(务必先停止 db 服务或使用数据库自带的 mariadb-dump,避免热备不一致)。

六、环境变量表

以下为三服务全部可用环境变量(名称均实测自 0.24.22/4.0.31 镜像内置启动脚本,标注实测默认值):

6.1 killbill 服务

变量实测默认值说明
KILLBILL_DAO_URL无(必填)JDBC 连接串,指向 db 服务的 killbill 库
KILLBILL_DAO_USERroot数据库用户名
KILLBILL_DAO_PASSWORD无(必填)数据库密码,需与 db 服务的 MYSQL_ROOT_PASSWORD 一致
KILLBILL_CATALOG_URI无启动时预置的目录文件名(镜像内置示例 SpyCarAdvanced.xml)
KB_ADMIN_PASSWORDpassword管理员 Basic 认证口令,经 shiro 模板渲染注入,生产必须修改
TOMCAT_JAVA_XMS512mJVM 初始堆,见第七节调优说明
TOMCAT_JAVA_XMX2GJVM 最大堆,见第七节调优说明
KILLBILL_VERSION0.24.22镜像内置版本号(只读参考)

6.2 kaui 服务

变量实测默认值说明
KAUI_CONFIG_DAO_URL无(必填)JDBC 连接串,指向 db 服务的 kaui 库
KAUI_CONFIG_DAO_USERroot数据库用户名
KAUI_CONFIG_DAO_PASSWORD无(必填)数据库密码
KAUI_KILLBILL_URL无(必填)Kill Bill API 地址(服务内网 http://killbill:8080)

6.3 db 服务

变量实测默认值说明
MYSQL_ROOT_PASSWORD无(必填)root 口令,须与两个应用的 *_DAO_PASSWORD 一致

解读:三组变量构成一条「密码链」——MYSQL_ROOT_PASSWORD 必须同时等于 KILLBILL_DAO_PASSWORD 与 KAUI_CONFIG_DAO_PASSWORD,任何一处不一致都会导致对应服务连库失败;KAUI_KILLBILL_URL 必须用服务内网地址(服务名 killbill),不要写宿主机映射端口,否则 KAUI 会绕外网一圈且可能被防火墙拦截。

七、配置参数说明

7.1 JVM 堆内存调优(实测重点)

Kill Bill 核心是 Java 进程,官方镜像默认堆为 -Xms512m -Xmx2G。小内存服务器(2–4GiB)建议压到 256–512MB 起步,按监控再调。

正确做法:在 killbill 服务的 environment 中设置 TOMCAT_JAVA_XMS 与 TOMCAT_JAVA_XMX(本文 compose 已含 TOMCAT_JAVA_XMS=256m、TOMCAT_JAVA_XMX=512m)。这两个变量由镜像内置的 Tomcat 启动脚本读取(脚本位于服务内 /var/lib/tomcat/bin/setenv.sh,将 CATALINA_OPTS 拼装为:

-Xms${TOMCAT_JAVA_XMS:-512m}
-Xmx${TOMCAT_JAVA_XMX:-2G}

即默认 512m / 2G)。

⚠️ 排障实录:如果改用通用的 JAVA_OPTS 环境变量注入堆参数(如 JAVA_OPTS=-Xms256m -Xmx512m),该值会先于镜像内置参数拼入命令行,随后被 setenv.sh 里的 -Xms512m -Xmx2G 覆盖(JVM 后出现的同名参数生效),实测验证如下——用 jps -v 查看进程参数,能同时看到两段堆参数且后者生效:

$ docker exec killbill-0.24.22-api jps -v
1 Bootstrap --add-opens=java.base/java.lang=ALL-UNNAMED ... -Xms256m -Xmx512m ... -Xms512m -Xmx2G -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=12345 ...

结论:调堆必须用 TOMCAT_JAVA_XMS/TOMCAT_JAVA_XMX,不要用 JAVA_OPTS。

改后验证(设置 TOMCAT_JAVA_XMS=256m、TOMCAT_JAVA_XMX=512m 并重建服务后):

docker exec killbill-0.24.22-api jps -v | grep Bootstrap | tr ' ' '\n' | grep -E '^-Xm'

实测回显:

-Xms256m
-Xmx512m

仅剩一组堆参数,调优生效。若服务内无 jps,可用 ps -ef | grep [j]ava 同样能看到完整命令行参数。

7.2 管理口令注入

KB_ADMIN_PASSWORD 在服务启动时经模板渲染写入 /var/lib/killbill/config/shiro.ini(模板原文为 admin = $KB_ADMIN_PASSWORD, root,环境变量替换后即成实际口令)。改口令只需改 Compose 环境变量并 docker compose up -d --force-recreate killbill 重建服务。

改后验证:旧口令应 401、新口令应 200(实测实录,口令从默认 password 改为 q1w2e3r4 后):

curl -s -o /dev/null -w '%{http_code}\n' -u admin:password -H 'X-Killbill-ApiKey: bob' -H 'X-Killbill-ApiSecret: lazar' http://127.0.0.1:8146/1.0/kb/catalog
curl -s -o /dev/null -w '%{http_code}\n' -u admin:q1w2e3r4 -H 'X-Killbill-ApiKey: bob' -H 'X-Killbill-ApiSecret: lazar' http://127.0.0.1:8146/1.0/kb/catalog

实测回显:

401
200

7.3 目录预置

KILLBILL_CATALOG_URI=SpyCarAdvanced.xml 指定启动时预置的定价目录文件(镜像内置的官方示例目录,含 4 个测试计划)。自建目录可把 XML 挂载进服务并改此变量,或部署后经 API 上传(推荐后者,无需重启)。首次部署后目录列表为空属正常——SpyCarAdvanced.xml 需在创建租户后首次出账时才出现在版本列表中。

八、配置文件挂载

需要覆盖服务内配置文件时,用 bind mount 方式挂载(在对应服务下加 volumes:):

服务容器内路径用途
killbill/var/lib/killbill/config/killbill.properties核心配置(数据源、插件目录、安全等,详见本专栏配置篇)
killbill/var/lib/killbill/config/shiro.ini认证配置(口令经 KB_ADMIN_PASSWORD 注入生成,一般无需挂载)
killbill/var/lib/killbill/bundles/OSGi 插件目录(持久化插件包,避免重建后重装)
kaui/var/lib/kaui/config/kaui.propertiesKAUI 配置

示例(killbill 服务追加挂载插件目录,保证插件随数据落盘):

    volumes:
      - type: bind
        source: /opt/killbill/bundles
        target: /var/lib/killbill/bundles

挂载宿主机目录属主注意与容器内进程一致:killbill 服务内进程用户为 tomcat(uid/gid 随镜像固定),挂载后若遇权限拒绝,用 chown -R 1000:1000 /opt/killbill/bundles 类似方式修正(以实际镜像内 uid 为准,docker exec killbill-0.24.22-api id tomcat 可查)。

九、等价 docker run 命令

不用 Compose 时,等价的手工启动命令如下(先建网络,再按 db → killbill → kaui 顺序,供理解 Compose 背后做了什么;生产仍推荐 Compose 管理):

# 1. 创建内部网络
docker network create killbill-net

# 2. 启动数据库(数据落盘宿主机 /opt/killbill/data)
docker run -d --name killbill-0.24.22-db \
  --network killbill-net \
  -v /opt/killbill/data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=killbill \
  killbill/mariadb:0.24

# 3. 启动 Kill Bill 核心(堆 256m/512m,管理口令 q1w2e3r4)
docker run -d --name killbill-0.24.22-api \
  --network killbill-net \
  -p 8146:8080 \
  -e KILLBILL_DAO_URL=jdbc:mysql://db:3306/killbill \
  -e KILLBILL_DAO_USER=root \
  -e KILLBILL_DAO_PASSWORD=killbill \
  -e KILLBILL_CATALOG_URI=SpyCarAdvanced.xml \
  -e KB_ADMIN_PASSWORD=q1w2e3r4 \
  -e TOMCAT_JAVA_XMS=256m \
  -e TOMCAT_JAVA_XMX=512m \
  killbill/killbill:0.24.22

# 4. 启动 KAUI 管理界面
docker run -d --name killbill-0.24.22-kaui \
  --network killbill-net \
  -p 8147:8080 \
  -e KAUI_CONFIG_DAO_URL=jdbc:mysql://db:3306/kaui \
  -e KAUI_CONFIG_DAO_USER=root \
  -e KAUI_CONFIG_DAO_PASSWORD=killbill \
  -e KAUI_KILLBILL_URL=http://killbill:8080 \
  killbill/kaui:4.0.31

十、常用运维命令

以下命令均在本文环境实测通过:

# 查看三服务状态
cd /opt/killbill && docker compose ps

# 跟踪 Kill Bill 核心日志(实时)
docker logs -f killbill-0.24.22-api

# 跟踪 KAUI 日志
docker logs -f killbill-0.24.22-kaui

# 重启单个服务(改环境变量后用 --force-recreate 才会生效)
docker compose up -d --force-recreate killbill

# 停止但不删除(数据与网络保留,start 秒回)
docker compose stop

# 再次启动
docker compose start

# 整体销毁(数据目录 /opt/killbill/data 保留)
docker compose down

# 销毁并连带删除数据目录(危险,等同重置安装)
docker compose down && rm -rf /opt/killbill/data

# 升级版本:修改 compose 中镜像标签后重建(数据库结构迁移自动执行,先备份数据目录)
docker compose pull && docker compose up -d

十一、常见问题

Q1:API 一直 404 或连接被拒绝? 核心未就绪或路径前缀错误。等日志出现 Kill Bill server has started;注意 API 根路径是 http://<IP>:8146/1.0/...(Swagger 描述文件在 /swagger),/kb/1.0/... 是旧版路径写法,0.24.x 的 war 上下文就是根路径,不要加 /kb 前缀。

Q2:认证一直 401? API 认证需要三件套齐全:Basic 管理员凭据(admin:q1w2e3r4,由 KB_ADMIN_PASSWORD 决定)+ X-Killbill-ApiKey + X-Killbill-ApiSecret。三者缺一均返回 401;新部署的数据库没有任何租户,必须先按第 4.5 节创建租户(否则密钥头怎么传都 401)。

Q3:用 JAVA_OPTS 调堆为什么不生效? 见第 7.1 节排障实录:镜像内置 setenv.sh 会在 JAVA_OPTS 之后追加默认堆参数并覆盖之,必须用 TOMCAT_JAVA_XMS/TOMCAT_JAVA_XMX。改后用 jps -v 验证。

Q4:docker compose up 后 KAUI 登录页打不开? 依次检查:docker compose ps 三服务是否全部 Up;KAUI_KILLBILL_URL 是否写的服务内网地址;宿主机 8147 是否被占用(ss -ltn | grep 8147)。KAUI 依赖 Kill Bill API,核心未就绪时 KAUI 登录会报连接错误,等核心启动完成再试。

Q5:升级版本要注意什么? Kill Bill 版本升级伴随数据库结构迁移(服务启动时自动执行 Flyway 脚本),先 mariadb-dump 全量备份数据目录与库,再改镜像标签 docker compose pull && docker compose up -d;KAUI 与核心版本无强绑定,但建议同批升级到官方同日发布的配对版本。

十二、参考链接

  1. 官方 Getting Started(Docker 部署章节,compose 三服务结构来源):https://docs.killbill.io/latest/getting_started.html
  2. 官方核心镜像:https://hub.docker.com/r/killbill/killbill
  3. 官方 KAUI 镜像:https://hub.docker.com/r/killbill/kaui
  4. 官方数据库镜像:https://hub.docker.com/r/killbill/mariadb
  5. Kill Bill 官网:https://killbill.io
  6. 本平台同组件文档:《Kill Bill 0.24.22 介绍与选型指南》