fix(deps): Testcontainers 1.19.7 → 1.20.6 修复 CAP_NET_RAW + FB-02 二次沉淀#6
CI 流水线运行 OpenApiExportTest / Req1OrderCreateTest 时失败:
Can not deserialize value of type Capability from String "CAP_NET_RAW": value not one of declared Enum instance names: [ALL, SYS_BOOT, ..., NET_RAW, ...]
较新的 Docker daemon(CNB 的 DinD)在 HostConfig.CapDrop 返回带 CAP_ 前缀的枚举值,而 Testcontainers 1.19.7 内嵌的 docker-java 的 Capability 枚举只识别不带前缀的名称。结果:容器启动成功但 inspect 调用解析崩溃,判定启动失败。
HostConfig.CapDrop
CAP_
docker-java
Capability
testcontainers.version: 1.19.7 → 1.20.6(同大版本末版最稳健,可识别 CAP_* 前缀)。
testcontainers.version: 1.19.7 → 1.20.6
CAP_*
这是 FB-02 的二次验证——第一次在 macOS + OrbStack 暴露为 API 版本号协商失败,这次在 CI 的 DinD 暴露为枚举反序列化失败。同一根因族(docker-java 与 daemon 的协议漂移),之前误以为是 macOS 独有问题,事实是任何足够新的 Docker 环境都会出现。
沉淀动作:
.archived/feedback/FB-02-*.md
cicd-pipeline/SKILL.md §硬约束
cicd-pipeline/SKILL.md §踩坑
LESSONS.md
fix(deps)
docs(framework)
合并后让 CI 二次验证功能测试能否启动容器。如果 1.20.6 仍不行,再考虑 1.21.3。
CI 失败根因
CI 流水线运行 OpenApiExportTest / Req1OrderCreateTest 时失败:
较新的 Docker daemon(CNB 的 DinD)在
HostConfig.CapDrop返回带CAP_前缀的枚举值,而 Testcontainers 1.19.7 内嵌的docker-java的Capability枚举只识别不带前缀的名称。结果:容器启动成功但 inspect 调用解析崩溃,判定启动失败。修复
testcontainers.version: 1.19.7 → 1.20.6(同大版本末版最稳健,可识别CAP_*前缀)。顺带沉淀到框架
这是 FB-02 的二次验证——第一次在 macOS + OrbStack 暴露为 API 版本号协商失败,这次在 CI 的 DinD 暴露为枚举反序列化失败。同一根因族(docker-java 与 daemon 的协议漂移),之前误以为是 macOS 独有问题,事实是任何足够新的 Docker 环境都会出现。
沉淀动作:
.archived/feedback/FB-02-*.mdcicd-pipeline/SKILL.md §硬约束cicd-pipeline/SKILL.md §踩坑LESSONS.md3 个 commit
fix(deps)docs(framework)验证
下一步
合并后让 CI 二次验证功能测试能否启动容器。如果 1.20.6 仍不行,再考虑 1.21.3。