{"job_id":"afd1e083-446d-45d8-80fb-05050cb825fc","filters":{"level":null,"component":null},"total":194,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-08-14 15:37:59.722 [INFO] [agent:afd1e083] 🚀 CI 流水线启动","timestamp":"2026-08-14T15:37:59.722538+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-08-14 15:37:59.722 [INFO] [git:afd1e083] cloning http://git.fanson.cloud/fanson/fscp-admin.git -> /app/data/workspace/afd1e083-446d-45d8-80fb-05050cb825fc (branch=develop)","timestamp":"2026-08-14T15:37:59.722852+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-08-14 15:38:01.447 [INFO] [git:afd1e083] Cloning into '/app/data/workspace/afd1e083-446d-45d8-80fb-05050cb825fc'...","timestamp":"2026-08-14T15:38:01.447395+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-08-14 15:38:01.447 [INFO] [git:afd1e083] git clone success: /app/data/workspace/afd1e083-446d-45d8-80fb-05050cb825fc","timestamp":"2026-08-14T15:38:01.447518+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-08-14 15:38:01.447 [INFO] [agent:afd1e083] 📦 代码已克隆到 /app/data/workspace/afd1e083-446d-45d8-80fb-05050cb825fc","timestamp":"2026-08-14T15:38:01.447864+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:38:01.456 [INFO] [orchestrator:afd1e083] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-08-14T15:38:01.456555+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:38:01.460 [INFO] [orchestrator:afd1e083] 📝 检测到变更的目录: \"sql, \"sql/, fscp-api, fscp-api/fscp-api-billing, fscp-modules, fscp-modules/fscp-billing, fscp-modules/fscp-tenant","timestamp":"2026-08-14T15:38:01.460072+08:00"},{"seq":8,"level":"INFO","component":"git","message":"[git] 2026-08-14 15:38:01.463 [INFO] [git:afd1e083] 目录 fscp-gateway 代码指纹: 758e339","timestamp":"2026-08-14T15:38:01.463480+08:00"},{"seq":9,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:01.838 [INFO] [docker:afd1e083] 镜像已存在于 Registry: docker.fanson.cloud/fanson/fscp-gateway:develop-758e339（跳过构建）","timestamp":"2026-08-14T15:38:01.838556+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:38:01.838 [INFO] [orchestrator:afd1e083] SKIP fanson/fscp-gateway (镜像 fanson/fscp-gateway:develop-758e339 已存在，代码指纹 758e339)","timestamp":"2026-08-14T15:38:01.838714+08:00"},{"seq":11,"level":"INFO","component":"git","message":"[git] 2026-08-14 15:38:01.842 [INFO] [git:afd1e083] 目录 fscp-auth 代码指纹: f3e26ae","timestamp":"2026-08-14T15:38:01.842519+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:02.225 [INFO] [docker:afd1e083] 镜像已存在于 Registry: docker.fanson.cloud/fanson/fscp-auth:develop-f3e26ae（跳过构建）","timestamp":"2026-08-14T15:38:02.225803+08:00"},{"seq":13,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:38:02.225 [INFO] [orchestrator:afd1e083] SKIP fanson/fscp-auth (镜像 fanson/fscp-auth:develop-f3e26ae 已存在，代码指纹 f3e26ae)","timestamp":"2026-08-14T15:38:02.225954+08:00"},{"seq":14,"level":"INFO","component":"git","message":"[git] 2026-08-14 15:38:02.229 [INFO] [git:afd1e083] 目录 fscp-modules 代码指纹: 6800cac","timestamp":"2026-08-14T15:38:02.229601+08:00"},{"seq":15,"level":"INFO","component":"git","message":"[git] 2026-08-14 15:38:02.854 [INFO] [git:afd1e083] 目录 fscp-modules 代码指纹: 6800cac","timestamp":"2026-08-14T15:38:02.854156+08:00"},{"seq":16,"level":"INFO","component":"git","message":"[git] 2026-08-14 15:38:03.479 [INFO] [git:afd1e083] 目录 fscp-modules 代码指纹: 6800cac","timestamp":"2026-08-14T15:38:03.479277+08:00"},{"seq":17,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:38:04.100 [INFO] [orchestrator:afd1e083] 🔨 开始构建 3 个服务","timestamp":"2026-08-14T15:38:04.100152+08:00"},{"seq":18,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:38:04.104 [INFO] [orchestrator:afd1e083] 🔨 构建服务: fanson/fscp-system → 镜像标签 fanson/fscp-system:develop-6800cac","timestamp":"2026-08-14T15:38:04.104090+08:00"},{"seq":19,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:38:04.104 [INFO] [orchestrator:afd1e083] 已自动注入 -pl fscp-modules/fscp-system -am: mvn -pl fscp-modules/fscp-system -am clean package -DskipTests","timestamp":"2026-08-14T15:38:04.104504+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:04.105 [INFO] [docker:afd1e083] building docker.fanson.cloud/fanson/fscp-system:develop-6800cac (with cache)","timestamp":"2026-08-14T15:38:04.105018+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:04.383 [INFO] [docker:afd1e083] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-08-14T15:38:04.383411+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:04.383 [INFO] [docker:afd1e083] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-08-14T15:38:04.383558+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:04.383 [INFO] [docker:afd1e083] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-08-14T15:38:04.383672+08:00"},{"seq":24,"level":"ERROR","component":"docker","message":"[docker] 2026-08-14 15:38:04.385 [ERROR] [docker:afd1e083] docker command failed (exit=1): ERROR: failed to build: Cache export is not supported for the docker driver.\nSwitch to a different driver, or turn on the containerd image store, and try again.\nLearn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-08-14T15:38:04.385616+08:00"},{"seq":25,"level":"WARNING","component":"docker","message":"[docker] 2026-08-14 15:38:04.385 [WARNING] [docker:afd1e083] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-08-14T15:38:04.385883+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:04.385 [INFO] [docker:afd1e083] building docker.fanson.cloud/fanson/fscp-system:develop-6800cac (native docker build)","timestamp":"2026-08-14T15:38:04.385985+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:05.171 [INFO] [docker:afd1e083] #1 DONE 0.5s","timestamp":"2026-08-14T15:38:05.171985+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:05.440 [INFO] [docker:afd1e083] #2 DONE 0.0s","timestamp":"2026-08-14T15:38:05.440340+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:05.647 [INFO] [docker:afd1e083] #4 DONE 0.4s","timestamp":"2026-08-14T15:38:05.647622+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:07.096 [INFO] [docker:afd1e083] #3 DONE 1.9s","timestamp":"2026-08-14T15:38:07.096091+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:07.538 [INFO] [docker:afd1e083] #5 DONE 0.4s","timestamp":"2026-08-14T15:38:07.538123+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:07.724 [INFO] [docker:afd1e083] #6 DONE 0.0s","timestamp":"2026-08-14T15:38:07.724899+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:07.725 [INFO] [docker:afd1e083] #7 DONE 0.0s","timestamp":"2026-08-14T15:38:07.725017+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:08.301 [INFO] [docker:afd1e083] #8 DONE 0.7s","timestamp":"2026-08-14T15:38:08.301117+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:08.499 [INFO] [docker:afd1e083] #9 CACHED","timestamp":"2026-08-14T15:38:08.499603+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:08.499 [INFO] [docker:afd1e083] #10 CACHED","timestamp":"2026-08-14T15:38:08.499736+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:08.499 [INFO] [docker:afd1e083] #11 CACHED","timestamp":"2026-08-14T15:38:08.499839+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:08.499 [INFO] [docker:afd1e083] #12 CACHED","timestamp":"2026-08-14T15:38:08.499935+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:10.446 [INFO] [docker:afd1e083] #13 DONE 2.1s","timestamp":"2026-08-14T15:38:10.446328+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:25.218 [INFO] [docker:afd1e083] #14 DONE 14.7s","timestamp":"2026-08-14T15:38:25.218754+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:25.904 [INFO] [docker:afd1e083] #15 CACHED","timestamp":"2026-08-14T15:38:25.904661+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:28.060 [INFO] [docker:afd1e083] #16 DONE 2.3s","timestamp":"2026-08-14T15:38:28.060485+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:29.232 [INFO] [docker:afd1e083] #17 DONE 1.1s","timestamp":"2026-08-14T15:38:29.232570+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.109 [INFO] [docker:afd1e083] build success: docker.fanson.cloud/fanson/fscp-system:develop-6800cac","timestamp":"2026-08-14T15:38:30.109773+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.109 [INFO] [docker:afd1e083] pushing docker.fanson.cloud/fanson/fscp-system:develop-6800cac","timestamp":"2026-08-14T15:38:30.109892+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.148 [INFO] [docker:afd1e083] The push refers to repository [docker.fanson.cloud/fanson/fscp-system]","timestamp":"2026-08-14T15:38:30.148823+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.182 [INFO] [docker:afd1e083] eedec4cccdf1: Preparing","timestamp":"2026-08-14T15:38:30.182583+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.182 [INFO] [docker:afd1e083] 5f70bf18a086: Preparing","timestamp":"2026-08-14T15:38:30.182709+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.182 [INFO] [docker:afd1e083] 71a2618c0925: Preparing","timestamp":"2026-08-14T15:38:30.182811+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.182 [INFO] [docker:afd1e083] 6fc52eaf99f6: Preparing","timestamp":"2026-08-14T15:38:30.182898+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.182 [INFO] [docker:afd1e083] cd4b3dc03178: Preparing","timestamp":"2026-08-14T15:38:30.182980+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] b4cfcb8385a8: Preparing","timestamp":"2026-08-14T15:38:30.183061+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] 2b730cf18c09: Preparing","timestamp":"2026-08-14T15:38:30.183141+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] edeaba958753: Preparing","timestamp":"2026-08-14T15:38:30.183223+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] 8bf42db0de72: Preparing","timestamp":"2026-08-14T15:38:30.183302+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] 31892cc314cb: Preparing","timestamp":"2026-08-14T15:38:30.183381+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] 11936051f93b: Preparing","timestamp":"2026-08-14T15:38:30.183460+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] 2b730cf18c09: Waiting","timestamp":"2026-08-14T15:38:30.183537+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] edeaba958753: Waiting","timestamp":"2026-08-14T15:38:30.183614+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] 8bf42db0de72: Waiting","timestamp":"2026-08-14T15:38:30.183691+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] 31892cc314cb: Waiting","timestamp":"2026-08-14T15:38:30.183776+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] 11936051f93b: Waiting","timestamp":"2026-08-14T15:38:30.183854+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.183 [INFO] [docker:afd1e083] b4cfcb8385a8: Waiting","timestamp":"2026-08-14T15:38:30.183938+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.572 [INFO] [docker:afd1e083] cd4b3dc03178: Layer already exists","timestamp":"2026-08-14T15:38:30.572501+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.572 [INFO] [docker:afd1e083] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-14T15:38:30.572667+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.572 [INFO] [docker:afd1e083] 71a2618c0925: Layer already exists","timestamp":"2026-08-14T15:38:30.572951+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.573 [INFO] [docker:afd1e083] 5f70bf18a086: Layer already exists","timestamp":"2026-08-14T15:38:30.573038+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.708 [INFO] [docker:afd1e083] 8bf42db0de72: Layer already exists","timestamp":"2026-08-14T15:38:30.708682+08:00"},{"seq":69,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.780 [INFO] [docker:afd1e083] edeaba958753: Layer already exists","timestamp":"2026-08-14T15:38:30.780429+08:00"},{"seq":70,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.780 [INFO] [docker:afd1e083] 2b730cf18c09: Layer already exists","timestamp":"2026-08-14T15:38:30.780946+08:00"},{"seq":71,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.781 [INFO] [docker:afd1e083] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-14T15:38:30.781217+08:00"},{"seq":72,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.808 [INFO] [docker:afd1e083] 31892cc314cb: Layer already exists","timestamp":"2026-08-14T15:38:30.808180+08:00"},{"seq":73,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:30.853 [INFO] [docker:afd1e083] 11936051f93b: Layer already exists","timestamp":"2026-08-14T15:38:30.853060+08:00"},{"seq":74,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:44.349 [INFO] [docker:afd1e083] eedec4cccdf1: Pushed","timestamp":"2026-08-14T15:38:44.349829+08:00"},{"seq":75,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:45.031 [INFO] [docker:afd1e083] develop-6800cac: digest: sha256:d6de1685244680c06eef2fde89c1e69a47a86f21e106777f6b517917ac220355 size: 2629","timestamp":"2026-08-14T15:38:45.031681+08:00"},{"seq":76,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:45.120 [INFO] [docker:afd1e083] The push refers to repository [docker.fanson.cloud/fanson/fscp-system]","timestamp":"2026-08-14T15:38:45.120267+08:00"},{"seq":77,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:45.154 [INFO] [docker:afd1e083] tag does not exist: docker.fanson.cloud/fanson/fscp-system:cache","timestamp":"2026-08-14T15:38:45.154450+08:00"},{"seq":78,"level":"ERROR","component":"docker","message":"[docker] 2026-08-14 15:38:45.155 [ERROR] [docker:afd1e083] docker command failed (exit=1): The push refers to repository [docker.fanson.cloud/fanson/fscp-system]\ntag does not exist: docker.fanson.cloud/fanson/fscp-system:cache","timestamp":"2026-08-14T15:38:45.155291+08:00"},{"seq":79,"level":"WARNING","component":"docker","message":"[docker] 2026-08-14 15:38:45.155 [WARNING] [docker:afd1e083] cache push skipped: The push refers to repository [docker.fanson.cloud/fanson/fscp-system]\ntag does not exist: docker.fanson.cloud/fanson/fscp-system:cache","timestamp":"2026-08-14T15:38:45.155657+08:00"},{"seq":80,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:38:45.155 [INFO] [orchestrator:afd1e083] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-system:develop-6800cac","timestamp":"2026-08-14T15:38:45.155816+08:00"},{"seq":81,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:38:45.159 [INFO] [orchestrator:afd1e083] 🔨 构建服务: fanson/fscp-billing → 镜像标签 fanson/fscp-billing:develop-6800cac","timestamp":"2026-08-14T15:38:45.159482+08:00"},{"seq":82,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:38:45.159 [INFO] [orchestrator:afd1e083] 已自动注入 -pl fscp-modules/fscp-billing -am: mvn -pl fscp-modules/fscp-billing -am clean package -DskipTests","timestamp":"2026-08-14T15:38:45.159652+08:00"},{"seq":83,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:45.160 [INFO] [docker:afd1e083] building docker.fanson.cloud/fanson/fscp-billing:develop-6800cac (skipping buildx — already known to fail)","timestamp":"2026-08-14T15:38:45.160054+08:00"},{"seq":84,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:45.597 [INFO] [docker:afd1e083] #1 DONE 0.2s","timestamp":"2026-08-14T15:38:45.597176+08:00"},{"seq":85,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:45.895 [INFO] [docker:afd1e083] #3 DONE 0.2s","timestamp":"2026-08-14T15:38:45.895848+08:00"},{"seq":86,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:48.295 [INFO] [docker:afd1e083] #2 DONE 2.6s","timestamp":"2026-08-14T15:38:48.295502+08:00"},{"seq":87,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:48.472 [INFO] [docker:afd1e083] #4 DONE 0.2s","timestamp":"2026-08-14T15:38:48.472144+08:00"},{"seq":88,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:48.582 [INFO] [docker:afd1e083] #5 DONE 0.0s","timestamp":"2026-08-14T15:38:48.582767+08:00"},{"seq":89,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:48.582 [INFO] [docker:afd1e083] #6 DONE 0.0s","timestamp":"2026-08-14T15:38:48.582955+08:00"},{"seq":90,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:48.792 [INFO] [docker:afd1e083] #7 DONE 0.3s","timestamp":"2026-08-14T15:38:48.792704+08:00"},{"seq":91,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:48.988 [INFO] [docker:afd1e083] #8 CACHED","timestamp":"2026-08-14T15:38:48.988641+08:00"},{"seq":92,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:48.988 [INFO] [docker:afd1e083] #9 CACHED","timestamp":"2026-08-14T15:38:48.988782+08:00"},{"seq":93,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:48.988 [INFO] [docker:afd1e083] #10 CACHED","timestamp":"2026-08-14T15:38:48.988891+08:00"},{"seq":94,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:48.988 [INFO] [docker:afd1e083] #11 CACHED","timestamp":"2026-08-14T15:38:48.988994+08:00"},{"seq":95,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:38:50.595 [INFO] [docker:afd1e083] #12 DONE 1.8s","timestamp":"2026-08-14T15:38:50.595165+08:00"},{"seq":96,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:05.854 [INFO] [docker:afd1e083] #13 DONE 15.2s","timestamp":"2026-08-14T15:39:05.854234+08:00"},{"seq":97,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:07.236 [INFO] [docker:afd1e083] #14 CACHED","timestamp":"2026-08-14T15:39:07.236455+08:00"},{"seq":98,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:09.624 [INFO] [docker:afd1e083] #15 DONE 2.4s","timestamp":"2026-08-14T15:39:09.624708+08:00"},{"seq":99,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:10.697 [INFO] [docker:afd1e083] #16 DONE 1.0s","timestamp":"2026-08-14T15:39:10.697161+08:00"},{"seq":100,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.651 [INFO] [docker:afd1e083] build success: docker.fanson.cloud/fanson/fscp-billing:develop-6800cac","timestamp":"2026-08-14T15:39:11.651623+08:00"},{"seq":101,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.651 [INFO] [docker:afd1e083] pushing docker.fanson.cloud/fanson/fscp-billing:develop-6800cac","timestamp":"2026-08-14T15:39:11.651769+08:00"},{"seq":102,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.685 [INFO] [docker:afd1e083] The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]","timestamp":"2026-08-14T15:39:11.685686+08:00"},{"seq":103,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.721 [INFO] [docker:afd1e083] b018747e7a24: Preparing","timestamp":"2026-08-14T15:39:11.721845+08:00"},{"seq":104,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.721 [INFO] [docker:afd1e083] 5f70bf18a086: Preparing","timestamp":"2026-08-14T15:39:11.721977+08:00"},{"seq":105,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.722 [INFO] [docker:afd1e083] 71a2618c0925: Preparing","timestamp":"2026-08-14T15:39:11.722086+08:00"},{"seq":106,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.722 [INFO] [docker:afd1e083] 6fc52eaf99f6: Preparing","timestamp":"2026-08-14T15:39:11.722187+08:00"},{"seq":107,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.722 [INFO] [docker:afd1e083] cd4b3dc03178: Preparing","timestamp":"2026-08-14T15:39:11.722281+08:00"},{"seq":108,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.722 [INFO] [docker:afd1e083] b4cfcb8385a8: Preparing","timestamp":"2026-08-14T15:39:11.722371+08:00"},{"seq":109,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.722 [INFO] [docker:afd1e083] 2b730cf18c09: Preparing","timestamp":"2026-08-14T15:39:11.722461+08:00"},{"seq":110,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.722 [INFO] [docker:afd1e083] edeaba958753: Preparing","timestamp":"2026-08-14T15:39:11.722547+08:00"},{"seq":111,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.722 [INFO] [docker:afd1e083] b4cfcb8385a8: Waiting","timestamp":"2026-08-14T15:39:11.722634+08:00"},{"seq":112,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.722 [INFO] [docker:afd1e083] 2b730cf18c09: Waiting","timestamp":"2026-08-14T15:39:11.722722+08:00"},{"seq":113,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.722 [INFO] [docker:afd1e083] 8bf42db0de72: Preparing","timestamp":"2026-08-14T15:39:11.722821+08:00"},{"seq":114,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.722 [INFO] [docker:afd1e083] 31892cc314cb: Preparing","timestamp":"2026-08-14T15:39:11.722923+08:00"},{"seq":115,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.723 [INFO] [docker:afd1e083] edeaba958753: Waiting","timestamp":"2026-08-14T15:39:11.723013+08:00"},{"seq":116,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.723 [INFO] [docker:afd1e083] 8bf42db0de72: Waiting","timestamp":"2026-08-14T15:39:11.723101+08:00"},{"seq":117,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.723 [INFO] [docker:afd1e083] 11936051f93b: Preparing","timestamp":"2026-08-14T15:39:11.723188+08:00"},{"seq":118,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.723 [INFO] [docker:afd1e083] 31892cc314cb: Waiting","timestamp":"2026-08-14T15:39:11.723274+08:00"},{"seq":119,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:11.723 [INFO] [docker:afd1e083] 11936051f93b: Waiting","timestamp":"2026-08-14T15:39:11.723361+08:00"},{"seq":120,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:12.018 [INFO] [docker:afd1e083] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-14T15:39:12.018673+08:00"},{"seq":121,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:12.100 [INFO] [docker:afd1e083] cd4b3dc03178: Layer already exists","timestamp":"2026-08-14T15:39:12.100631+08:00"},{"seq":122,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:12.100 [INFO] [docker:afd1e083] 5f70bf18a086: Layer already exists","timestamp":"2026-08-14T15:39:12.100915+08:00"},{"seq":123,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:12.101 [INFO] [docker:afd1e083] 71a2618c0925: Layer already exists","timestamp":"2026-08-14T15:39:12.101246+08:00"},{"seq":124,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:12.130 [INFO] [docker:afd1e083] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-14T15:39:12.130224+08:00"},{"seq":125,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:12.239 [INFO] [docker:afd1e083] 8bf42db0de72: Layer already exists","timestamp":"2026-08-14T15:39:12.239547+08:00"},{"seq":126,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:12.260 [INFO] [docker:afd1e083] edeaba958753: Layer already exists","timestamp":"2026-08-14T15:39:12.260032+08:00"},{"seq":127,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:12.260 [INFO] [docker:afd1e083] 2b730cf18c09: Layer already exists","timestamp":"2026-08-14T15:39:12.260146+08:00"},{"seq":128,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:12.260 [INFO] [docker:afd1e083] 31892cc314cb: Layer already exists","timestamp":"2026-08-14T15:39:12.260343+08:00"},{"seq":129,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:12.411 [INFO] [docker:afd1e083] 11936051f93b: Layer already exists","timestamp":"2026-08-14T15:39:12.411054+08:00"},{"seq":130,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:23.227 [INFO] [docker:afd1e083] b018747e7a24: Pushed","timestamp":"2026-08-14T15:39:23.227418+08:00"},{"seq":131,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:24.031 [INFO] [docker:afd1e083] develop-6800cac: digest: sha256:0c1256c2accc59215a63d07f3ae17a95a1ff90b1b13173570532e2c2adb10bf4 size: 2629","timestamp":"2026-08-14T15:39:24.031312+08:00"},{"seq":132,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:24.114 [INFO] [docker:afd1e083] The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]","timestamp":"2026-08-14T15:39:24.114414+08:00"},{"seq":133,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:24.146 [INFO] [docker:afd1e083] tag does not exist: docker.fanson.cloud/fanson/fscp-billing:cache","timestamp":"2026-08-14T15:39:24.146612+08:00"},{"seq":134,"level":"ERROR","component":"docker","message":"[docker] 2026-08-14 15:39:24.147 [ERROR] [docker:afd1e083] docker command failed (exit=1): The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]\ntag does not exist: docker.fanson.cloud/fanson/fscp-billing:cache","timestamp":"2026-08-14T15:39:24.147427+08:00"},{"seq":135,"level":"WARNING","component":"docker","message":"[docker] 2026-08-14 15:39:24.147 [WARNING] [docker:afd1e083] cache push skipped: The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]\ntag does not exist: docker.fanson.cloud/fanson/fscp-billing:cache","timestamp":"2026-08-14T15:39:24.147767+08:00"},{"seq":136,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:39:24.147 [INFO] [orchestrator:afd1e083] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-billing:develop-6800cac","timestamp":"2026-08-14T15:39:24.147885+08:00"},{"seq":137,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:39:24.151 [INFO] [orchestrator:afd1e083] 🔨 构建服务: fanson/fscp-tenant → 镜像标签 fanson/fscp-tenant:develop-6800cac","timestamp":"2026-08-14T15:39:24.151241+08:00"},{"seq":138,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:39:24.151 [INFO] [orchestrator:afd1e083] 已自动注入 -pl fscp-modules/fscp-tenant -am: mvn -pl fscp-modules/fscp-tenant -am clean package -DskipTests","timestamp":"2026-08-14T15:39:24.151389+08:00"},{"seq":139,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:24.151 [INFO] [docker:afd1e083] building docker.fanson.cloud/fanson/fscp-tenant:develop-6800cac (skipping buildx — already known to fail)","timestamp":"2026-08-14T15:39:24.151775+08:00"},{"seq":140,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:24.629 [INFO] [docker:afd1e083] #1 DONE 0.2s","timestamp":"2026-08-14T15:39:24.629228+08:00"},{"seq":141,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:24.850 [INFO] [docker:afd1e083] #3 DONE 0.2s","timestamp":"2026-08-14T15:39:24.850496+08:00"},{"seq":142,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:25.580 [INFO] [docker:afd1e083] #2 DONE 0.9s","timestamp":"2026-08-14T15:39:25.580361+08:00"},{"seq":143,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:25.768 [INFO] [docker:afd1e083] #4 DONE 0.2s","timestamp":"2026-08-14T15:39:25.768229+08:00"},{"seq":144,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:25.889 [INFO] [docker:afd1e083] #5 DONE 0.0s","timestamp":"2026-08-14T15:39:25.889932+08:00"},{"seq":145,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:25.890 [INFO] [docker:afd1e083] #6 DONE 0.0s","timestamp":"2026-08-14T15:39:25.890081+08:00"},{"seq":146,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:26.133 [INFO] [docker:afd1e083] #7 DONE 0.3s","timestamp":"2026-08-14T15:39:26.133135+08:00"},{"seq":147,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:26.351 [INFO] [docker:afd1e083] #8 CACHED","timestamp":"2026-08-14T15:39:26.351046+08:00"},{"seq":148,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:26.351 [INFO] [docker:afd1e083] #9 CACHED","timestamp":"2026-08-14T15:39:26.351187+08:00"},{"seq":149,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:26.351 [INFO] [docker:afd1e083] #10 CACHED","timestamp":"2026-08-14T15:39:26.351286+08:00"},{"seq":150,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:26.351 [INFO] [docker:afd1e083] #11 CACHED","timestamp":"2026-08-14T15:39:26.351380+08:00"},{"seq":151,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:28.211 [INFO] [docker:afd1e083] #12 DONE 2.0s","timestamp":"2026-08-14T15:39:28.211934+08:00"},{"seq":152,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:42.685 [INFO] [docker:afd1e083] #13 DONE 14.4s","timestamp":"2026-08-14T15:39:42.685822+08:00"},{"seq":153,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:43.048 [INFO] [docker:afd1e083] #14 CACHED","timestamp":"2026-08-14T15:39:43.049004+08:00"},{"seq":154,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:44.886 [INFO] [docker:afd1e083] #15 DONE 1.8s","timestamp":"2026-08-14T15:39:44.886259+08:00"},{"seq":155,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:45.980 [INFO] [docker:afd1e083] #16 DONE 1.0s","timestamp":"2026-08-14T15:39:45.980957+08:00"},{"seq":156,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.736 [INFO] [docker:afd1e083] build success: docker.fanson.cloud/fanson/fscp-tenant:develop-6800cac","timestamp":"2026-08-14T15:39:46.736378+08:00"},{"seq":157,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.736 [INFO] [docker:afd1e083] pushing docker.fanson.cloud/fanson/fscp-tenant:develop-6800cac","timestamp":"2026-08-14T15:39:46.736484+08:00"},{"seq":158,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.774 [INFO] [docker:afd1e083] The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]","timestamp":"2026-08-14T15:39:46.774608+08:00"},{"seq":159,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.810 [INFO] [docker:afd1e083] 626f573d879c: Preparing","timestamp":"2026-08-14T15:39:46.810158+08:00"},{"seq":160,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.810 [INFO] [docker:afd1e083] 5f70bf18a086: Preparing","timestamp":"2026-08-14T15:39:46.810280+08:00"},{"seq":161,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.810 [INFO] [docker:afd1e083] 71a2618c0925: Preparing","timestamp":"2026-08-14T15:39:46.810385+08:00"},{"seq":162,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.810 [INFO] [docker:afd1e083] 6fc52eaf99f6: Preparing","timestamp":"2026-08-14T15:39:46.810484+08:00"},{"seq":163,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.810 [INFO] [docker:afd1e083] cd4b3dc03178: Preparing","timestamp":"2026-08-14T15:39:46.810581+08:00"},{"seq":164,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.810 [INFO] [docker:afd1e083] b4cfcb8385a8: Preparing","timestamp":"2026-08-14T15:39:46.810673+08:00"},{"seq":165,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.810 [INFO] [docker:afd1e083] 2b730cf18c09: Preparing","timestamp":"2026-08-14T15:39:46.810778+08:00"},{"seq":166,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.810 [INFO] [docker:afd1e083] edeaba958753: Preparing","timestamp":"2026-08-14T15:39:46.810870+08:00"},{"seq":167,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.810 [INFO] [docker:afd1e083] 8bf42db0de72: Preparing","timestamp":"2026-08-14T15:39:46.810965+08:00"},{"seq":168,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.811 [INFO] [docker:afd1e083] 31892cc314cb: Preparing","timestamp":"2026-08-14T15:39:46.811056+08:00"},{"seq":169,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.811 [INFO] [docker:afd1e083] 11936051f93b: Preparing","timestamp":"2026-08-14T15:39:46.811151+08:00"},{"seq":170,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.811 [INFO] [docker:afd1e083] b4cfcb8385a8: Waiting","timestamp":"2026-08-14T15:39:46.811241+08:00"},{"seq":171,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.811 [INFO] [docker:afd1e083] 2b730cf18c09: Waiting","timestamp":"2026-08-14T15:39:46.811334+08:00"},{"seq":172,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.811 [INFO] [docker:afd1e083] edeaba958753: Waiting","timestamp":"2026-08-14T15:39:46.811422+08:00"},{"seq":173,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.811 [INFO] [docker:afd1e083] 8bf42db0de72: Waiting","timestamp":"2026-08-14T15:39:46.811515+08:00"},{"seq":174,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.811 [INFO] [docker:afd1e083] 31892cc314cb: Waiting","timestamp":"2026-08-14T15:39:46.811604+08:00"},{"seq":175,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:46.811 [INFO] [docker:afd1e083] 11936051f93b: Waiting","timestamp":"2026-08-14T15:39:46.811696+08:00"},{"seq":176,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:47.186 [INFO] [docker:afd1e083] cd4b3dc03178: Layer already exists","timestamp":"2026-08-14T15:39:47.186387+08:00"},{"seq":177,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:47.186 [INFO] [docker:afd1e083] 5f70bf18a086: Layer already exists","timestamp":"2026-08-14T15:39:47.186718+08:00"},{"seq":178,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:47.186 [INFO] [docker:afd1e083] 71a2618c0925: Layer already exists","timestamp":"2026-08-14T15:39:47.186900+08:00"},{"seq":179,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:47.187 [INFO] [docker:afd1e083] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-14T15:39:47.187667+08:00"},{"seq":180,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:47.302 [INFO] [docker:afd1e083] 8bf42db0de72: Layer already exists","timestamp":"2026-08-14T15:39:47.302287+08:00"},{"seq":181,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:47.312 [INFO] [docker:afd1e083] edeaba958753: Layer already exists","timestamp":"2026-08-14T15:39:47.312577+08:00"},{"seq":182,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:47.312 [INFO] [docker:afd1e083] 2b730cf18c09: Layer already exists","timestamp":"2026-08-14T15:39:47.312734+08:00"},{"seq":183,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:47.313 [INFO] [docker:afd1e083] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-14T15:39:47.313227+08:00"},{"seq":184,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:47.379 [INFO] [docker:afd1e083] 11936051f93b: Layer already exists","timestamp":"2026-08-14T15:39:47.379436+08:00"},{"seq":185,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:47.410 [INFO] [docker:afd1e083] 31892cc314cb: Layer already exists","timestamp":"2026-08-14T15:39:47.410387+08:00"},{"seq":186,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:54.169 [INFO] [docker:afd1e083] 626f573d879c: Pushed","timestamp":"2026-08-14T15:39:54.169819+08:00"},{"seq":187,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:54.916 [INFO] [docker:afd1e083] develop-6800cac: digest: sha256:725d10a3cf295c27ad46ea9f2a452ea703f30079cc49f389a89b70aafd542839 size: 2628","timestamp":"2026-08-14T15:39:54.916771+08:00"},{"seq":188,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:54.998 [INFO] [docker:afd1e083] The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]","timestamp":"2026-08-14T15:39:54.998162+08:00"},{"seq":189,"level":"INFO","component":"docker","message":"[docker] 2026-08-14 15:39:55.031 [INFO] [docker:afd1e083] tag does not exist: docker.fanson.cloud/fanson/fscp-tenant:cache","timestamp":"2026-08-14T15:39:55.031743+08:00"},{"seq":190,"level":"ERROR","component":"docker","message":"[docker] 2026-08-14 15:39:55.032 [ERROR] [docker:afd1e083] docker command failed (exit=1): The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]\ntag does not exist: docker.fanson.cloud/fanson/fscp-tenant:cache","timestamp":"2026-08-14T15:39:55.032516+08:00"},{"seq":191,"level":"WARNING","component":"docker","message":"[docker] 2026-08-14 15:39:55.032 [WARNING] [docker:afd1e083] cache push skipped: The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]\ntag does not exist: docker.fanson.cloud/fanson/fscp-tenant:cache","timestamp":"2026-08-14T15:39:55.032865+08:00"},{"seq":192,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-14 15:39:55.032 [INFO] [orchestrator:afd1e083] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-tenant:develop-6800cac","timestamp":"2026-08-14T15:39:55.032981+08:00"},{"seq":193,"level":"INFO","component":"agent","message":"[agent] 2026-08-14 15:39:55.070 [INFO] [agent:afd1e083] ✅ 构建完成: 成功构建 5 个镜像: docker.fanson.cloud/fanson/fscp-gateway:develop-758e339, docker.fanson.cloud/fanson/fscp-auth:develop-f3e26ae, docker.fanson.cloud/fanson/fscp-system:develop-6800cac, docker.fanson.cloud/fanson/fscp-billing:develop-6800cac, docker.fanson.cloud/fanson/fscp-tenant:develop-6800cac","timestamp":"2026-08-14T15:39:55.070541+08:00"},{"seq":194,"level":"INFO","component":"agent","message":"[agent] 2026-08-14 15:39:55.095 [INFO] [agent:afd1e083] workspace cleaned","timestamp":"2026-08-14T15:39:55.095850+08:00"}]}