!https://github.com/apache/fineract/actions/workflows/build-mariadb.yml/badge.svg?branch=develop !Docker Hub !https://github.com/apache/fineract/actions/workflows/publish-dockerhub.yml/badge.svg !Technical Debt
Fineract是一个成熟的开放API平台,提供可靠、健壮且经济实惠的核心银行解决方案,专为向全球30亿未被充分服务和无银行账户人群提供服务的机构设计。该平台支持机构高效管理账户、交易和客户数据,通过开放API实现与第三方系统的集成,满足小额和普惠的业务需求。
数据库容器化部署示例
bash# 启动MariaDB容器 docker run --name mariadb-11.5 -p 3306:3306 -e MARIADB_ROOT_PASSWORD=mysql -d mariadb:11.5.2 # 停止并删除容器(数据将丢失,仅用于开发环境) docker rm -f mariadb-11.5
注意:默认容器数据存储在容器内部,删除容器后数据将丢失。生产环境需配置持久化存储,详见https://hub.docker.com/_/mariadb%E3%80%82
前提条件
部署步骤
bash# Linux/macOS git clone https://github.com/apache/fineract.git && cd fineract # Windows git clone https://github.com/apache/fineract.git --config core.autocrlf=input && cd fineract
bash./gradlew :fineract-provider:jibDockerBuild -x test
bashdocker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
bashdocker compose -f docker-compose-development.yml up -d
mifos,密码password注意:首次访问需在浏览器中接受API的自签名SSL证书,否则UI可能显示误导性错误。
日志和监控
PROJECT_ROOT/build/fineract/logs.jfr文件可通过IntelliJ或Azul Mission Control分析文件权限配置
若遇到Docker Compose文件权限问题,需修改PROJECT_ROOT/config/docker/env/fineract-common.env中的FINERACT_USER和FINERACT_GROUP:
bash# 获取当前用户ID和组ID id -u ${USER} id -g ${USER}
初始化数据库
bash./gradlew createDB -PdbName=fineract_tenants ./gradlew createDB -PdbName=fineract_default
启动开发服务器
bash./gradlew devRun
bash./gradlew clean bootJar
生成的JAR文件位于:fineract-provider/build/libs
bashwget https://dlm.mariadb.com/4174416/Connectors/java/connector-java-3.5.2/mariadb-java-client-3.5.2.jar
bashjava -Dloader.path=. -jar fineract-provider/build/libs/fineract-provider.jar
环境变量配置(租户数据库连接)
bashexport FINERACT_HIKARI_PASSWORD=verysecret export FINERACT_HIKARI_JDBC_URL=jdbc:mariadb://localhost:3306/fineract_tenants?serverTimezone=UTC&useLegacyDatetimeCode=false&sessionVariables=time_zone='-00:00' # 其他环境变量... java -jar fineract-provider.jar
Fineract 1.7.0+版本采用UTC时间存储,需确保:
serverTimezone=UTC&useLegacyDatetimeCode=false&sessionVariables=time_zone='-00:00'
迁移注意:若从非UTC时区环境迁移,需调整历史数据时区偏移,避免数据读取错误。
通过环境变量配置Hikari连接池,前缀为FINERACT_HIKARI_*,主要参数包括:
FINERACT_HIKARI_JDBC_URL:JDBC连接URLFINERACT_HIKARI_USERNAME:数据库用户名FINERACT_HIKARI_PASSWORD:数据库密码FINERACT_HIKARI_MAXIMUM_POOL_SIZE:最大连接数(默认10)FINERACT_HIKARI_CONNECTION_TIMEOUT:连接超时时间(默认30000ms)完整配置参数见https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby
详见官方文档:HTTPS配置
通过环境变量调整Tomcat性能参数,主要包括:
FINERACT_SERVER_TOMCAT_MAX_HTTP_FORM_POST_SIZE:最大POST大小(默认2MB)完整配置参考Spring Boot文档
常规集群部署
bashgit clone https://github.com/apache/fineract.git && cd fineract/kubernetes ./kubectl-startup.sh
Minikube本地集群部署
bash# 启动Minikube minikube start # 部署Fineract cd fineract/kubernetes && ./kubectl-startup.sh # 获取访问URL minikube service fineract-server --url --https # 健康检查 http --verify=no --timeout 240 --check-status get $(minikube service fineract-server --url --https)/fineract-provider/actuator/health # 查看日志 kubectl logs deployment/fineract-server # 停止并清理 ./kubectl-shutdown.sh minikube ssh sudo rm -rf /mnt/data/
支持ActiveMQ(JMS)和Kafka,用于外部业务事件通知和Spring Batch远程分区作业。
ActiveMQ配置
yaml# docker-compose示例片段 environment: FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED: "true" FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED: "false" FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_BROKER_URL: "tcp://activemq:61616"
Kafka配置
支持PLAINTEXT无认证模式及AWS MSK IAM认证,完整配置见官方文档
config/checkstyle/checkstyle.xml定义代码规范./gradlew spotlessApply修复格式问题./gradlew clean build jacocoTestReport生成覆盖率报告,位于build/code-coveragebash./gradlew doc
依赖工具:Ghostscript、Graphviz(详见.github/workflows/build-documentation.yml)
/fineract-provider/legacy-docs/apiLive.htm(运行时访问)/fineract-provider/swagger-ui/index.html(在线演示)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务