- 实现账户管理改进设计文档中的所有核心功能 - 三科目余额管理 (个人余额、劳动报酬、冻结余额) - 交易状态机 (created → pending → bank_submitted → success/failed/timeout → reversed) - 三键幂等体系 (JZTxId/BankTxId/SourceKey) - 优先级扣款规则 (先个人后劳动) - 在途资金管理 (可用→在途→结转/回退) - 三账对账闭环 (总账 = 银行账 + 在途净额) - 补偿服务域 (超时检测、重试、死信队列) - 虚拟银行模拟器用于业务测试 - 完整的集成测试套件 (133 个测试全部通过) - Docker 容器化部署配置 - 前端 Vue3 + TypeScript 项目结构
35 lines
603 B
Docker
35 lines
603 B
Docker
# 多阶段构建:构建阶段
|
|
FROM rust:1.75 as builder
|
|
|
|
WORKDIR /app
|
|
|
|
# 复制依赖文件
|
|
COPY Cargo.toml Cargo.lock ./
|
|
|
|
# 复制源代码
|
|
COPY src ./src
|
|
COPY migrations ./migrations
|
|
|
|
# 构建发布版本
|
|
RUN cargo build --release
|
|
|
|
# 运行阶段
|
|
FROM debian:bookworm-slim
|
|
|
|
# 安装必要的运行时依赖
|
|
RUN apt-get update && \
|
|
apt-get install -y ca-certificates libssl3 && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
# 从构建阶段复制二进制文件
|
|
COPY --from=builder /app/target/release/rustjr /usr/local/bin/rustjr
|
|
|
|
# 暴露端口
|
|
EXPOSE 8080
|
|
|
|
# 运行应用
|
|
CMD ["rustjr"]
|
|
|