{"job_id":"e7f5d767-3ae6-4722-af2b-823b4cee3923","filters":{"level":null,"component":null},"total":194,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-08-18 15:35:30.924 [INFO] [agent:e7f5d767] 🚀 CI 流水线启动","timestamp":"2026-08-18T15:35:30.924899+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-08-18 15:35:30.925 [INFO] [git:e7f5d767] cloning http://git.fanson.cloud/fanson/fscp-admin.git -> /app/data/workspace/e7f5d767-3ae6-4722-af2b-823b4cee3923 (branch=develop)","timestamp":"2026-08-18T15:35:30.925198+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-08-18 15:35:32.008 [INFO] [git:e7f5d767] Cloning into '/app/data/workspace/e7f5d767-3ae6-4722-af2b-823b4cee3923'...","timestamp":"2026-08-18T15:35:32.008864+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-08-18 15:35:32.008 [INFO] [git:e7f5d767] git clone success: /app/data/workspace/e7f5d767-3ae6-4722-af2b-823b4cee3923","timestamp":"2026-08-18T15:35:32.008999+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-08-18 15:35:32.009 [INFO] [agent:e7f5d767] 📦 代码已克隆到 /app/data/workspace/e7f5d767-3ae6-4722-af2b-823b4cee3923","timestamp":"2026-08-18T15:35:32.009301+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:35:32.011 [INFO] [orchestrator:e7f5d767] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-08-18T15:35:32.011794+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:35:32.519 [INFO] [orchestrator:e7f5d767] 📝 检测到变更的目录: \"sql, \"sql/, fscp-api, fscp-api/fscp-api-billing, fscp-modules, fscp-modules/fscp-billing, fscp-modules/fscp-system, fscp-modules/fscp-tenant","timestamp":"2026-08-18T15:35:32.519370+08:00"},{"seq":8,"level":"INFO","component":"git","message":"[git] 2026-08-18 15:35:32.522 [INFO] [git:e7f5d767] 目录 fscp-gateway 代码指纹: df7c7da","timestamp":"2026-08-18T15:35:32.522183+08:00"},{"seq":9,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:32.920 [INFO] [docker:e7f5d767] 镜像已存在于 Registry: docker.fanson.cloud/fanson/fscp-gateway:develop-df7c7da（跳过构建）","timestamp":"2026-08-18T15:35:32.920978+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:35:32.921 [INFO] [orchestrator:e7f5d767] SKIP fanson/fscp-gateway (镜像 fanson/fscp-gateway:develop-df7c7da 已存在，代码指纹 df7c7da)","timestamp":"2026-08-18T15:35:32.921098+08:00"},{"seq":11,"level":"INFO","component":"git","message":"[git] 2026-08-18 15:35:32.924 [INFO] [git:e7f5d767] 目录 fscp-auth 代码指纹: 6db0579","timestamp":"2026-08-18T15:35:32.924825+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:33.305 [INFO] [docker:e7f5d767] 镜像已存在于 Registry: docker.fanson.cloud/fanson/fscp-auth:develop-6db0579（跳过构建）","timestamp":"2026-08-18T15:35:33.305853+08:00"},{"seq":13,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:35:33.305 [INFO] [orchestrator:e7f5d767] SKIP fanson/fscp-auth (镜像 fanson/fscp-auth:develop-6db0579 已存在，代码指纹 6db0579)","timestamp":"2026-08-18T15:35:33.305989+08:00"},{"seq":14,"level":"INFO","component":"git","message":"[git] 2026-08-18 15:35:33.309 [INFO] [git:e7f5d767] 目录 fscp-modules 代码指纹: 22a1bca","timestamp":"2026-08-18T15:35:33.309410+08:00"},{"seq":15,"level":"INFO","component":"git","message":"[git] 2026-08-18 15:35:34.147 [INFO] [git:e7f5d767] 目录 fscp-modules 代码指纹: 22a1bca","timestamp":"2026-08-18T15:35:34.147785+08:00"},{"seq":16,"level":"INFO","component":"git","message":"[git] 2026-08-18 15:35:39.803 [INFO] [git:e7f5d767] 目录 fscp-modules 代码指纹: 22a1bca","timestamp":"2026-08-18T15:35:39.803455+08:00"},{"seq":17,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:35:45.470 [INFO] [orchestrator:e7f5d767] 🔨 开始构建 3 个服务","timestamp":"2026-08-18T15:35:45.470901+08:00"},{"seq":18,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:35:45.474 [INFO] [orchestrator:e7f5d767] 🔨 构建服务: fanson/fscp-system → 镜像标签 fanson/fscp-system:develop-22a1bca","timestamp":"2026-08-18T15:35:45.474457+08:00"},{"seq":19,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:35:45.474 [INFO] [orchestrator:e7f5d767] 已自动注入 -pl fscp-modules/fscp-system -am: mvn -pl fscp-modules/fscp-system -am clean package -DskipTests","timestamp":"2026-08-18T15:35:45.474582+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:45.475 [INFO] [docker:e7f5d767] building docker.fanson.cloud/fanson/fscp-system:develop-22a1bca (with cache)","timestamp":"2026-08-18T15:35:45.475048+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:45.798 [INFO] [docker:e7f5d767] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-08-18T15:35:45.798957+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:45.799 [INFO] [docker:e7f5d767] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-08-18T15:35:45.799104+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:45.799 [INFO] [docker:e7f5d767] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-08-18T15:35:45.799205+08:00"},{"seq":24,"level":"ERROR","component":"docker","message":"[docker] 2026-08-18 15:35:45.800 [ERROR] [docker:e7f5d767] 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-18T15:35:45.800952+08:00"},{"seq":25,"level":"WARNING","component":"docker","message":"[docker] 2026-08-18 15:35:45.801 [WARNING] [docker:e7f5d767] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-08-18T15:35:45.801387+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:45.801 [INFO] [docker:e7f5d767] building docker.fanson.cloud/fanson/fscp-system:develop-22a1bca (native docker build)","timestamp":"2026-08-18T15:35:45.801486+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:46.565 [INFO] [docker:e7f5d767] #1 DONE 0.5s","timestamp":"2026-08-18T15:35:46.565182+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:46.909 [INFO] [docker:e7f5d767] #2 DONE 0.0s","timestamp":"2026-08-18T15:35:46.909662+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:47.195 [INFO] [docker:e7f5d767] #3 DONE 0.6s","timestamp":"2026-08-18T15:35:47.195617+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:49.738 [INFO] [docker:e7f5d767] #4 DONE 3.1s","timestamp":"2026-08-18T15:35:49.738848+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:50.258 [INFO] [docker:e7f5d767] #5 DONE 0.5s","timestamp":"2026-08-18T15:35:50.258351+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:50.456 [INFO] [docker:e7f5d767] #6 DONE 0.0s","timestamp":"2026-08-18T15:35:50.456342+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:50.456 [INFO] [docker:e7f5d767] #7 DONE 0.0s","timestamp":"2026-08-18T15:35:50.456461+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:51.032 [INFO] [docker:e7f5d767] #8 DONE 0.7s","timestamp":"2026-08-18T15:35:51.032395+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:51.177 [INFO] [docker:e7f5d767] #9 CACHED","timestamp":"2026-08-18T15:35:51.177213+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:51.177 [INFO] [docker:e7f5d767] #10 CACHED","timestamp":"2026-08-18T15:35:51.177342+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:51.177 [INFO] [docker:e7f5d767] #11 CACHED","timestamp":"2026-08-18T15:35:51.177443+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:51.177 [INFO] [docker:e7f5d767] #12 CACHED","timestamp":"2026-08-18T15:35:51.177539+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:35:53.055 [INFO] [docker:e7f5d767] #13 DONE 1.9s","timestamp":"2026-08-18T15:35:53.055904+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:07.596 [INFO] [docker:e7f5d767] #14 DONE 14.5s","timestamp":"2026-08-18T15:36:07.596115+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:07.995 [INFO] [docker:e7f5d767] #15 CACHED","timestamp":"2026-08-18T15:36:07.995847+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:10.183 [INFO] [docker:e7f5d767] #16 DONE 2.2s","timestamp":"2026-08-18T15:36:10.183531+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:11.444 [INFO] [docker:e7f5d767] #17 DONE 1.2s","timestamp":"2026-08-18T15:36:11.444229+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.332 [INFO] [docker:e7f5d767] build success: docker.fanson.cloud/fanson/fscp-system:develop-22a1bca","timestamp":"2026-08-18T15:36:12.332231+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.332 [INFO] [docker:e7f5d767] pushing docker.fanson.cloud/fanson/fscp-system:develop-22a1bca","timestamp":"2026-08-18T15:36:12.332348+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.370 [INFO] [docker:e7f5d767] The push refers to repository [docker.fanson.cloud/fanson/fscp-system]","timestamp":"2026-08-18T15:36:12.370206+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.406 [INFO] [docker:e7f5d767] b93d19768a12: Preparing","timestamp":"2026-08-18T15:36:12.406042+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.406 [INFO] [docker:e7f5d767] 5f70bf18a086: Preparing","timestamp":"2026-08-18T15:36:12.406180+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.406 [INFO] [docker:e7f5d767] 71a2618c0925: Preparing","timestamp":"2026-08-18T15:36:12.406281+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.406 [INFO] [docker:e7f5d767] 6fc52eaf99f6: Preparing","timestamp":"2026-08-18T15:36:12.406380+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.406 [INFO] [docker:e7f5d767] cd4b3dc03178: Preparing","timestamp":"2026-08-18T15:36:12.406480+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.406 [INFO] [docker:e7f5d767] b4cfcb8385a8: Preparing","timestamp":"2026-08-18T15:36:12.406575+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.406 [INFO] [docker:e7f5d767] 2b730cf18c09: Preparing","timestamp":"2026-08-18T15:36:12.406671+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.406 [INFO] [docker:e7f5d767] edeaba958753: Preparing","timestamp":"2026-08-18T15:36:12.406778+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.406 [INFO] [docker:e7f5d767] 8bf42db0de72: Preparing","timestamp":"2026-08-18T15:36:12.406873+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.406 [INFO] [docker:e7f5d767] 31892cc314cb: Preparing","timestamp":"2026-08-18T15:36:12.406967+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.407 [INFO] [docker:e7f5d767] 11936051f93b: Preparing","timestamp":"2026-08-18T15:36:12.407060+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.407 [INFO] [docker:e7f5d767] b4cfcb8385a8: Waiting","timestamp":"2026-08-18T15:36:12.407155+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.407 [INFO] [docker:e7f5d767] 2b730cf18c09: Waiting","timestamp":"2026-08-18T15:36:12.407247+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.407 [INFO] [docker:e7f5d767] edeaba958753: Waiting","timestamp":"2026-08-18T15:36:12.407340+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.407 [INFO] [docker:e7f5d767] 11936051f93b: Waiting","timestamp":"2026-08-18T15:36:12.407432+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.407 [INFO] [docker:e7f5d767] 8bf42db0de72: Waiting","timestamp":"2026-08-18T15:36:12.407523+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.407 [INFO] [docker:e7f5d767] 31892cc314cb: Waiting","timestamp":"2026-08-18T15:36:12.407614+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.828 [INFO] [docker:e7f5d767] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-18T15:36:12.828497+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.828 [INFO] [docker:e7f5d767] 71a2618c0925: Layer already exists","timestamp":"2026-08-18T15:36:12.828639+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.828 [INFO] [docker:e7f5d767] 5f70bf18a086: Layer already exists","timestamp":"2026-08-18T15:36:12.828936+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.829 [INFO] [docker:e7f5d767] cd4b3dc03178: Layer already exists","timestamp":"2026-08-18T15:36:12.829100+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:12.943 [INFO] [docker:e7f5d767] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-18T15:36:12.943394+08:00"},{"seq":69,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:13.003 [INFO] [docker:e7f5d767] edeaba958753: Layer already exists","timestamp":"2026-08-18T15:36:13.003609+08:00"},{"seq":70,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:13.003 [INFO] [docker:e7f5d767] 8bf42db0de72: Layer already exists","timestamp":"2026-08-18T15:36:13.003765+08:00"},{"seq":71,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:13.004 [INFO] [docker:e7f5d767] 2b730cf18c09: Layer already exists","timestamp":"2026-08-18T15:36:13.004876+08:00"},{"seq":72,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:13.031 [INFO] [docker:e7f5d767] 31892cc314cb: Layer already exists","timestamp":"2026-08-18T15:36:13.031130+08:00"},{"seq":73,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:13.109 [INFO] [docker:e7f5d767] 11936051f93b: Layer already exists","timestamp":"2026-08-18T15:36:13.109378+08:00"},{"seq":74,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:23.883 [INFO] [docker:e7f5d767] b93d19768a12: Pushed","timestamp":"2026-08-18T15:36:23.883684+08:00"},{"seq":75,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:24.609 [INFO] [docker:e7f5d767] develop-22a1bca: digest: sha256:f2b3af9330870a118fc2a1b344c88169aa639ef737ac9a0f3b2d6afbbc36b22f size: 2629","timestamp":"2026-08-18T15:36:24.609786+08:00"},{"seq":76,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:24.701 [INFO] [docker:e7f5d767] The push refers to repository [docker.fanson.cloud/fanson/fscp-system]","timestamp":"2026-08-18T15:36:24.701846+08:00"},{"seq":77,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:24.734 [INFO] [docker:e7f5d767] tag does not exist: docker.fanson.cloud/fanson/fscp-system:cache","timestamp":"2026-08-18T15:36:24.734430+08:00"},{"seq":78,"level":"ERROR","component":"docker","message":"[docker] 2026-08-18 15:36:24.735 [ERROR] [docker:e7f5d767] 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-18T15:36:24.735271+08:00"},{"seq":79,"level":"WARNING","component":"docker","message":"[docker] 2026-08-18 15:36:24.735 [WARNING] [docker:e7f5d767] 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-18T15:36:24.735614+08:00"},{"seq":80,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:36:24.735 [INFO] [orchestrator:e7f5d767] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-system:develop-22a1bca","timestamp":"2026-08-18T15:36:24.735723+08:00"},{"seq":81,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:36:24.739 [INFO] [orchestrator:e7f5d767] 🔨 构建服务: fanson/fscp-billing → 镜像标签 fanson/fscp-billing:develop-22a1bca","timestamp":"2026-08-18T15:36:24.739342+08:00"},{"seq":82,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:36:24.739 [INFO] [orchestrator:e7f5d767] 已自动注入 -pl fscp-modules/fscp-billing -am: mvn -pl fscp-modules/fscp-billing -am clean package -DskipTests","timestamp":"2026-08-18T15:36:24.739450+08:00"},{"seq":83,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:24.739 [INFO] [docker:e7f5d767] building docker.fanson.cloud/fanson/fscp-billing:develop-22a1bca (skipping buildx — already known to fail)","timestamp":"2026-08-18T15:36:24.739832+08:00"},{"seq":84,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:25.132 [INFO] [docker:e7f5d767] #1 DONE 0.2s","timestamp":"2026-08-18T15:36:25.132965+08:00"},{"seq":85,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:25.519 [INFO] [docker:e7f5d767] #3 DONE 0.3s","timestamp":"2026-08-18T15:36:25.519893+08:00"},{"seq":86,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:28.870 [INFO] [docker:e7f5d767] #2 DONE 3.7s","timestamp":"2026-08-18T15:36:28.870396+08:00"},{"seq":87,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:29.080 [INFO] [docker:e7f5d767] #4 DONE 0.2s","timestamp":"2026-08-18T15:36:29.080240+08:00"},{"seq":88,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:29.180 [INFO] [docker:e7f5d767] #5 DONE 0.0s","timestamp":"2026-08-18T15:36:29.180464+08:00"},{"seq":89,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:29.180 [INFO] [docker:e7f5d767] #6 DONE 0.0s","timestamp":"2026-08-18T15:36:29.180629+08:00"},{"seq":90,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:29.389 [INFO] [docker:e7f5d767] #7 DONE 0.3s","timestamp":"2026-08-18T15:36:29.389999+08:00"},{"seq":91,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:29.585 [INFO] [docker:e7f5d767] #8 CACHED","timestamp":"2026-08-18T15:36:29.585620+08:00"},{"seq":92,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:29.585 [INFO] [docker:e7f5d767] #9 CACHED","timestamp":"2026-08-18T15:36:29.585753+08:00"},{"seq":93,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:29.585 [INFO] [docker:e7f5d767] #10 CACHED","timestamp":"2026-08-18T15:36:29.585854+08:00"},{"seq":94,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:29.585 [INFO] [docker:e7f5d767] #11 CACHED","timestamp":"2026-08-18T15:36:29.585948+08:00"},{"seq":95,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:31.170 [INFO] [docker:e7f5d767] #12 DONE 1.7s","timestamp":"2026-08-18T15:36:31.170216+08:00"},{"seq":96,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:46.451 [INFO] [docker:e7f5d767] #13 DONE 15.2s","timestamp":"2026-08-18T15:36:46.451303+08:00"},{"seq":97,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:46.875 [INFO] [docker:e7f5d767] #14 CACHED","timestamp":"2026-08-18T15:36:46.875115+08:00"},{"seq":98,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:50.321 [INFO] [docker:e7f5d767] #15 DONE 3.4s","timestamp":"2026-08-18T15:36:50.321374+08:00"},{"seq":99,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:51.548 [INFO] [docker:e7f5d767] #16 DONE 1.2s","timestamp":"2026-08-18T15:36:51.548702+08:00"},{"seq":100,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.503 [INFO] [docker:e7f5d767] build success: docker.fanson.cloud/fanson/fscp-billing:develop-22a1bca","timestamp":"2026-08-18T15:36:52.503024+08:00"},{"seq":101,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.503 [INFO] [docker:e7f5d767] pushing docker.fanson.cloud/fanson/fscp-billing:develop-22a1bca","timestamp":"2026-08-18T15:36:52.503130+08:00"},{"seq":102,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.537 [INFO] [docker:e7f5d767] The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]","timestamp":"2026-08-18T15:36:52.537418+08:00"},{"seq":103,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.571 [INFO] [docker:e7f5d767] b7441fbe7df0: Preparing","timestamp":"2026-08-18T15:36:52.571924+08:00"},{"seq":104,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] 5f70bf18a086: Preparing","timestamp":"2026-08-18T15:36:52.572019+08:00"},{"seq":105,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] 71a2618c0925: Preparing","timestamp":"2026-08-18T15:36:52.572103+08:00"},{"seq":106,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] 6fc52eaf99f6: Preparing","timestamp":"2026-08-18T15:36:52.572184+08:00"},{"seq":107,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] cd4b3dc03178: Preparing","timestamp":"2026-08-18T15:36:52.572263+08:00"},{"seq":108,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] b4cfcb8385a8: Preparing","timestamp":"2026-08-18T15:36:52.572342+08:00"},{"seq":109,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] 2b730cf18c09: Preparing","timestamp":"2026-08-18T15:36:52.572419+08:00"},{"seq":110,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] edeaba958753: Preparing","timestamp":"2026-08-18T15:36:52.572496+08:00"},{"seq":111,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] 8bf42db0de72: Preparing","timestamp":"2026-08-18T15:36:52.572573+08:00"},{"seq":112,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] 31892cc314cb: Preparing","timestamp":"2026-08-18T15:36:52.572649+08:00"},{"seq":113,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] 11936051f93b: Preparing","timestamp":"2026-08-18T15:36:52.572724+08:00"},{"seq":114,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] 2b730cf18c09: Waiting","timestamp":"2026-08-18T15:36:52.572809+08:00"},{"seq":115,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] b4cfcb8385a8: Waiting","timestamp":"2026-08-18T15:36:52.572885+08:00"},{"seq":116,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.572 [INFO] [docker:e7f5d767] edeaba958753: Waiting","timestamp":"2026-08-18T15:36:52.572962+08:00"},{"seq":117,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.573 [INFO] [docker:e7f5d767] 31892cc314cb: Waiting","timestamp":"2026-08-18T15:36:52.573038+08:00"},{"seq":118,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.573 [INFO] [docker:e7f5d767] 11936051f93b: Waiting","timestamp":"2026-08-18T15:36:52.573114+08:00"},{"seq":119,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.573 [INFO] [docker:e7f5d767] 8bf42db0de72: Waiting","timestamp":"2026-08-18T15:36:52.573189+08:00"},{"seq":120,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.887 [INFO] [docker:e7f5d767] 5f70bf18a086: Layer already exists","timestamp":"2026-08-18T15:36:52.887342+08:00"},{"seq":121,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.948 [INFO] [docker:e7f5d767] cd4b3dc03178: Layer already exists","timestamp":"2026-08-18T15:36:52.948105+08:00"},{"seq":122,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.948 [INFO] [docker:e7f5d767] 71a2618c0925: Layer already exists","timestamp":"2026-08-18T15:36:52.948230+08:00"},{"seq":123,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.948 [INFO] [docker:e7f5d767] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-18T15:36:52.948681+08:00"},{"seq":124,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:52.987 [INFO] [docker:e7f5d767] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-18T15:36:52.987347+08:00"},{"seq":125,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:53.075 [INFO] [docker:e7f5d767] 8bf42db0de72: Layer already exists","timestamp":"2026-08-18T15:36:53.075895+08:00"},{"seq":126,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:53.103 [INFO] [docker:e7f5d767] 31892cc314cb: Layer already exists","timestamp":"2026-08-18T15:36:53.103684+08:00"},{"seq":127,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:53.103 [INFO] [docker:e7f5d767] edeaba958753: Layer already exists","timestamp":"2026-08-18T15:36:53.103828+08:00"},{"seq":128,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:53.104 [INFO] [docker:e7f5d767] 2b730cf18c09: Layer already exists","timestamp":"2026-08-18T15:36:53.104377+08:00"},{"seq":129,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:36:53.194 [INFO] [docker:e7f5d767] 11936051f93b: Layer already exists","timestamp":"2026-08-18T15:36:53.194954+08:00"},{"seq":130,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:07.317 [INFO] [docker:e7f5d767] b7441fbe7df0: Pushed","timestamp":"2026-08-18T15:37:07.317254+08:00"},{"seq":131,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:08.197 [INFO] [docker:e7f5d767] develop-22a1bca: digest: sha256:7a40913188e8610537b4d4e47107ea992d0d82a0d3b016920085fda0c1b6c2cf size: 2629","timestamp":"2026-08-18T15:37:08.197675+08:00"},{"seq":132,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:08.292 [INFO] [docker:e7f5d767] The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]","timestamp":"2026-08-18T15:37:08.292588+08:00"},{"seq":133,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:08.328 [INFO] [docker:e7f5d767] tag does not exist: docker.fanson.cloud/fanson/fscp-billing:cache","timestamp":"2026-08-18T15:37:08.328565+08:00"},{"seq":134,"level":"ERROR","component":"docker","message":"[docker] 2026-08-18 15:37:08.329 [ERROR] [docker:e7f5d767] 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-18T15:37:08.329326+08:00"},{"seq":135,"level":"WARNING","component":"docker","message":"[docker] 2026-08-18 15:37:08.329 [WARNING] [docker:e7f5d767] 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-18T15:37:08.329649+08:00"},{"seq":136,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:37:08.329 [INFO] [orchestrator:e7f5d767] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-billing:develop-22a1bca","timestamp":"2026-08-18T15:37:08.329765+08:00"},{"seq":137,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:37:08.353 [INFO] [orchestrator:e7f5d767] 🔨 构建服务: fanson/fscp-tenant → 镜像标签 fanson/fscp-tenant:develop-22a1bca","timestamp":"2026-08-18T15:37:08.353851+08:00"},{"seq":138,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:37:08.353 [INFO] [orchestrator:e7f5d767] 已自动注入 -pl fscp-modules/fscp-tenant -am: mvn -pl fscp-modules/fscp-tenant -am clean package -DskipTests","timestamp":"2026-08-18T15:37:08.353965+08:00"},{"seq":139,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:08.354 [INFO] [docker:e7f5d767] building docker.fanson.cloud/fanson/fscp-tenant:develop-22a1bca (skipping buildx — already known to fail)","timestamp":"2026-08-18T15:37:08.354322+08:00"},{"seq":140,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:08.775 [INFO] [docker:e7f5d767] #1 DONE 0.2s","timestamp":"2026-08-18T15:37:08.775975+08:00"},{"seq":141,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:09.174 [INFO] [docker:e7f5d767] #3 DONE 0.4s","timestamp":"2026-08-18T15:37:09.174008+08:00"},{"seq":142,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:10.434 [INFO] [docker:e7f5d767] #2 DONE 1.6s","timestamp":"2026-08-18T15:37:10.434542+08:00"},{"seq":143,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:10.633 [INFO] [docker:e7f5d767] #4 DONE 0.2s","timestamp":"2026-08-18T15:37:10.633353+08:00"},{"seq":144,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:10.751 [INFO] [docker:e7f5d767] #5 DONE 0.0s","timestamp":"2026-08-18T15:37:10.751170+08:00"},{"seq":145,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:10.751 [INFO] [docker:e7f5d767] #6 DONE 0.0s","timestamp":"2026-08-18T15:37:10.751304+08:00"},{"seq":146,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:10.909 [INFO] [docker:e7f5d767] #7 DONE 0.2s","timestamp":"2026-08-18T15:37:10.909899+08:00"},{"seq":147,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:11.127 [INFO] [docker:e7f5d767] #8 CACHED","timestamp":"2026-08-18T15:37:11.127802+08:00"},{"seq":148,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:11.127 [INFO] [docker:e7f5d767] #9 CACHED","timestamp":"2026-08-18T15:37:11.127921+08:00"},{"seq":149,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:11.128 [INFO] [docker:e7f5d767] #10 CACHED","timestamp":"2026-08-18T15:37:11.128019+08:00"},{"seq":150,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:11.128 [INFO] [docker:e7f5d767] #11 CACHED","timestamp":"2026-08-18T15:37:11.128111+08:00"},{"seq":151,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:12.712 [INFO] [docker:e7f5d767] #12 DONE 1.7s","timestamp":"2026-08-18T15:37:12.712264+08:00"},{"seq":152,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:27.517 [INFO] [docker:e7f5d767] #13 DONE 14.7s","timestamp":"2026-08-18T15:37:27.517883+08:00"},{"seq":153,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:27.924 [INFO] [docker:e7f5d767] #14 CACHED","timestamp":"2026-08-18T15:37:27.924343+08:00"},{"seq":154,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:29.762 [INFO] [docker:e7f5d767] #15 DONE 1.8s","timestamp":"2026-08-18T15:37:29.762556+08:00"},{"seq":155,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:30.934 [INFO] [docker:e7f5d767] #16 DONE 1.1s","timestamp":"2026-08-18T15:37:30.934595+08:00"},{"seq":156,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.032 [INFO] [docker:e7f5d767] build success: docker.fanson.cloud/fanson/fscp-tenant:develop-22a1bca","timestamp":"2026-08-18T15:37:32.032807+08:00"},{"seq":157,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.032 [INFO] [docker:e7f5d767] pushing docker.fanson.cloud/fanson/fscp-tenant:develop-22a1bca","timestamp":"2026-08-18T15:37:32.032914+08:00"},{"seq":158,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.070 [INFO] [docker:e7f5d767] The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]","timestamp":"2026-08-18T15:37:32.070312+08:00"},{"seq":159,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] 54547cac1c10: Preparing","timestamp":"2026-08-18T15:37:32.106021+08:00"},{"seq":160,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] 5f70bf18a086: Preparing","timestamp":"2026-08-18T15:37:32.106134+08:00"},{"seq":161,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] 71a2618c0925: Preparing","timestamp":"2026-08-18T15:37:32.106235+08:00"},{"seq":162,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] 6fc52eaf99f6: Preparing","timestamp":"2026-08-18T15:37:32.106318+08:00"},{"seq":163,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] cd4b3dc03178: Preparing","timestamp":"2026-08-18T15:37:32.106399+08:00"},{"seq":164,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] b4cfcb8385a8: Preparing","timestamp":"2026-08-18T15:37:32.106479+08:00"},{"seq":165,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] 2b730cf18c09: Preparing","timestamp":"2026-08-18T15:37:32.106556+08:00"},{"seq":166,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] edeaba958753: Preparing","timestamp":"2026-08-18T15:37:32.106634+08:00"},{"seq":167,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] 8bf42db0de72: Preparing","timestamp":"2026-08-18T15:37:32.106710+08:00"},{"seq":168,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] 31892cc314cb: Preparing","timestamp":"2026-08-18T15:37:32.106797+08:00"},{"seq":169,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] 11936051f93b: Preparing","timestamp":"2026-08-18T15:37:32.106873+08:00"},{"seq":170,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.106 [INFO] [docker:e7f5d767] b4cfcb8385a8: Waiting","timestamp":"2026-08-18T15:37:32.106949+08:00"},{"seq":171,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.107 [INFO] [docker:e7f5d767] 2b730cf18c09: Waiting","timestamp":"2026-08-18T15:37:32.107024+08:00"},{"seq":172,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.107 [INFO] [docker:e7f5d767] edeaba958753: Waiting","timestamp":"2026-08-18T15:37:32.107100+08:00"},{"seq":173,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.107 [INFO] [docker:e7f5d767] 8bf42db0de72: Waiting","timestamp":"2026-08-18T15:37:32.107175+08:00"},{"seq":174,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.107 [INFO] [docker:e7f5d767] 31892cc314cb: Waiting","timestamp":"2026-08-18T15:37:32.107251+08:00"},{"seq":175,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.107 [INFO] [docker:e7f5d767] 11936051f93b: Waiting","timestamp":"2026-08-18T15:37:32.107325+08:00"},{"seq":176,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.406 [INFO] [docker:e7f5d767] cd4b3dc03178: Layer already exists","timestamp":"2026-08-18T15:37:32.406401+08:00"},{"seq":177,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.457 [INFO] [docker:e7f5d767] 5f70bf18a086: Layer already exists","timestamp":"2026-08-18T15:37:32.457837+08:00"},{"seq":178,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.457 [INFO] [docker:e7f5d767] 71a2618c0925: Layer already exists","timestamp":"2026-08-18T15:37:32.457950+08:00"},{"seq":179,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.458 [INFO] [docker:e7f5d767] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-18T15:37:32.458317+08:00"},{"seq":180,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.534 [INFO] [docker:e7f5d767] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-18T15:37:32.534527+08:00"},{"seq":181,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.550 [INFO] [docker:e7f5d767] edeaba958753: Layer already exists","timestamp":"2026-08-18T15:37:32.550191+08:00"},{"seq":182,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.550 [INFO] [docker:e7f5d767] 2b730cf18c09: Layer already exists","timestamp":"2026-08-18T15:37:32.550351+08:00"},{"seq":183,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.551 [INFO] [docker:e7f5d767] 8bf42db0de72: Layer already exists","timestamp":"2026-08-18T15:37:32.551091+08:00"},{"seq":184,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.606 [INFO] [docker:e7f5d767] 11936051f93b: Layer already exists","timestamp":"2026-08-18T15:37:32.606322+08:00"},{"seq":185,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:32.656 [INFO] [docker:e7f5d767] 31892cc314cb: Layer already exists","timestamp":"2026-08-18T15:37:32.656777+08:00"},{"seq":186,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:39.471 [INFO] [docker:e7f5d767] 54547cac1c10: Pushed","timestamp":"2026-08-18T15:37:39.471447+08:00"},{"seq":187,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:40.241 [INFO] [docker:e7f5d767] develop-22a1bca: digest: sha256:5b4dd52ac3e9236f1e75c0fc1b8916e0b6a45cf92b04566690efd5d13fc9404d size: 2628","timestamp":"2026-08-18T15:37:40.241682+08:00"},{"seq":188,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:40.325 [INFO] [docker:e7f5d767] The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]","timestamp":"2026-08-18T15:37:40.325424+08:00"},{"seq":189,"level":"INFO","component":"docker","message":"[docker] 2026-08-18 15:37:40.358 [INFO] [docker:e7f5d767] tag does not exist: docker.fanson.cloud/fanson/fscp-tenant:cache","timestamp":"2026-08-18T15:37:40.358776+08:00"},{"seq":190,"level":"ERROR","component":"docker","message":"[docker] 2026-08-18 15:37:40.359 [ERROR] [docker:e7f5d767] 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-18T15:37:40.359547+08:00"},{"seq":191,"level":"WARNING","component":"docker","message":"[docker] 2026-08-18 15:37:40.359 [WARNING] [docker:e7f5d767] 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-18T15:37:40.359888+08:00"},{"seq":192,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-18 15:37:40.360 [INFO] [orchestrator:e7f5d767] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-tenant:develop-22a1bca","timestamp":"2026-08-18T15:37:40.360041+08:00"},{"seq":193,"level":"INFO","component":"agent","message":"[agent] 2026-08-18 15:37:40.396 [INFO] [agent:e7f5d767] ✅ 构建完成: 成功构建 5 个镜像: docker.fanson.cloud/fanson/fscp-gateway:develop-df7c7da, docker.fanson.cloud/fanson/fscp-auth:develop-6db0579, docker.fanson.cloud/fanson/fscp-system:develop-22a1bca, docker.fanson.cloud/fanson/fscp-billing:develop-22a1bca, docker.fanson.cloud/fanson/fscp-tenant:develop-22a1bca","timestamp":"2026-08-18T15:37:40.396475+08:00"},{"seq":194,"level":"INFO","component":"agent","message":"[agent] 2026-08-18 15:37:40.422 [INFO] [agent:e7f5d767] workspace cleaned","timestamp":"2026-08-18T15:37:40.422262+08:00"}]}