{"job_id":"27f17ec4-c6e6-4fa4-a807-bbe42e428b75","filters":{"level":null,"component":null},"total":194,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-08-17 16:31:44.080 [INFO] [agent:27f17ec4] 🚀 CI 流水线启动","timestamp":"2026-08-17T16:31:44.080895+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-08-17 16:31:44.081 [INFO] [git:27f17ec4] cloning http://git.fanson.cloud/fanson/fscp-admin.git -> /app/data/workspace/27f17ec4-c6e6-4fa4-a807-bbe42e428b75 (branch=develop)","timestamp":"2026-08-17T16:31:44.081221+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-08-17 16:31:45.427 [INFO] [git:27f17ec4] Cloning into '/app/data/workspace/27f17ec4-c6e6-4fa4-a807-bbe42e428b75'...","timestamp":"2026-08-17T16:31:45.427840+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-08-17 16:31:45.427 [INFO] [git:27f17ec4] git clone success: /app/data/workspace/27f17ec4-c6e6-4fa4-a807-bbe42e428b75","timestamp":"2026-08-17T16:31:45.427952+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-08-17 16:31:45.428 [INFO] [agent:27f17ec4] 📦 代码已克隆到 /app/data/workspace/27f17ec4-c6e6-4fa4-a807-bbe42e428b75","timestamp":"2026-08-17T16:31:45.428240+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:31:45.430 [INFO] [orchestrator:27f17ec4] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-08-17T16:31:45.430691+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:31:45.884 [INFO] [orchestrator:27f17ec4] 📝 检测到变更的目录: \"sql, \"sql/, fscp-api, fscp-api/fscp-api-system, fscp-modules, fscp-modules/fscp-system, fscp-modules/fscp-tenant","timestamp":"2026-08-17T16:31:45.884462+08:00"},{"seq":8,"level":"INFO","component":"git","message":"[git] 2026-08-17 16:31:45.888 [INFO] [git:27f17ec4] 目录 fscp-gateway 代码指纹: 758e339","timestamp":"2026-08-17T16:31:45.888566+08:00"},{"seq":9,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:46.296 [INFO] [docker:27f17ec4] 镜像已存在于 Registry: docker.fanson.cloud/fanson/fscp-gateway:develop-758e339（跳过构建）","timestamp":"2026-08-17T16:31:46.296819+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:31:46.296 [INFO] [orchestrator:27f17ec4] SKIP fanson/fscp-gateway (镜像 fanson/fscp-gateway:develop-758e339 已存在，代码指纹 758e339)","timestamp":"2026-08-17T16:31:46.296953+08:00"},{"seq":11,"level":"INFO","component":"git","message":"[git] 2026-08-17 16:31:46.300 [INFO] [git:27f17ec4] 目录 fscp-auth 代码指纹: f3e26ae","timestamp":"2026-08-17T16:31:46.300622+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:46.675 [INFO] [docker:27f17ec4] 镜像已存在于 Registry: docker.fanson.cloud/fanson/fscp-auth:develop-f3e26ae（跳过构建）","timestamp":"2026-08-17T16:31:46.675267+08:00"},{"seq":13,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:31:46.675 [INFO] [orchestrator:27f17ec4] SKIP fanson/fscp-auth (镜像 fanson/fscp-auth:develop-f3e26ae 已存在，代码指纹 f3e26ae)","timestamp":"2026-08-17T16:31:46.675400+08:00"},{"seq":14,"level":"INFO","component":"git","message":"[git] 2026-08-17 16:31:46.679 [INFO] [git:27f17ec4] 目录 fscp-modules 代码指纹: 1f091f0","timestamp":"2026-08-17T16:31:46.679124+08:00"},{"seq":15,"level":"INFO","component":"git","message":"[git] 2026-08-17 16:31:47.312 [INFO] [git:27f17ec4] 目录 fscp-modules 代码指纹: 1f091f0","timestamp":"2026-08-17T16:31:47.312464+08:00"},{"seq":16,"level":"INFO","component":"git","message":"[git] 2026-08-17 16:31:47.935 [INFO] [git:27f17ec4] 目录 fscp-modules 代码指纹: 1f091f0","timestamp":"2026-08-17T16:31:47.935416+08:00"},{"seq":17,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:31:48.563 [INFO] [orchestrator:27f17ec4] 🔨 开始构建 3 个服务","timestamp":"2026-08-17T16:31:48.563483+08:00"},{"seq":18,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:31:48.566 [INFO] [orchestrator:27f17ec4] 🔨 构建服务: fanson/fscp-system → 镜像标签 fanson/fscp-system:develop-1f091f0","timestamp":"2026-08-17T16:31:48.566950+08:00"},{"seq":19,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:31:48.567 [INFO] [orchestrator:27f17ec4] 已自动注入 -pl fscp-modules/fscp-system -am: mvn -pl fscp-modules/fscp-system -am clean package -DskipTests","timestamp":"2026-08-17T16:31:48.567073+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:48.567 [INFO] [docker:27f17ec4] building docker.fanson.cloud/fanson/fscp-system:develop-1f091f0 (with cache)","timestamp":"2026-08-17T16:31:48.567528+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:48.823 [INFO] [docker:27f17ec4] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-08-17T16:31:48.823884+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:48.824 [INFO] [docker:27f17ec4] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-08-17T16:31:48.824014+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:48.824 [INFO] [docker:27f17ec4] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-08-17T16:31:48.824105+08:00"},{"seq":24,"level":"ERROR","component":"docker","message":"[docker] 2026-08-17 16:31:48.825 [ERROR] [docker:27f17ec4] 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-17T16:31:48.825917+08:00"},{"seq":25,"level":"WARNING","component":"docker","message":"[docker] 2026-08-17 16:31:48.826 [WARNING] [docker:27f17ec4] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-08-17T16:31:48.826225+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:48.826 [INFO] [docker:27f17ec4] building docker.fanson.cloud/fanson/fscp-system:develop-1f091f0 (native docker build)","timestamp":"2026-08-17T16:31:48.826316+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:49.512 [INFO] [docker:27f17ec4] #1 DONE 0.5s","timestamp":"2026-08-17T16:31:49.512081+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:49.804 [INFO] [docker:27f17ec4] #2 DONE 0.0s","timestamp":"2026-08-17T16:31:49.804757+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:50.109 [INFO] [docker:27f17ec4] #3 DONE 0.6s","timestamp":"2026-08-17T16:31:50.109365+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:50.326 [INFO] [docker:27f17ec4] #4 DONE 0.6s","timestamp":"2026-08-17T16:31:50.326856+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:50.551 [INFO] [docker:27f17ec4] #5 DONE 0.4s","timestamp":"2026-08-17T16:31:50.551463+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:50.738 [INFO] [docker:27f17ec4] #6 DONE 0.0s","timestamp":"2026-08-17T16:31:50.738748+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:50.738 [INFO] [docker:27f17ec4] #7 DONE 0.0s","timestamp":"2026-08-17T16:31:50.738868+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:51.281 [INFO] [docker:27f17ec4] #8 DONE 0.7s","timestamp":"2026-08-17T16:31:51.281377+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:51.468 [INFO] [docker:27f17ec4] #9 CACHED","timestamp":"2026-08-17T16:31:51.468438+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:51.468 [INFO] [docker:27f17ec4] #10 CACHED","timestamp":"2026-08-17T16:31:51.468556+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:51.468 [INFO] [docker:27f17ec4] #11 CACHED","timestamp":"2026-08-17T16:31:51.468659+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:51.468 [INFO] [docker:27f17ec4] #12 CACHED","timestamp":"2026-08-17T16:31:51.468769+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:31:53.249 [INFO] [docker:27f17ec4] #13 DONE 1.9s","timestamp":"2026-08-17T16:31:53.249605+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:07.435 [INFO] [docker:27f17ec4] #14 DONE 14.1s","timestamp":"2026-08-17T16:32:07.435970+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:07.839 [INFO] [docker:27f17ec4] #15 CACHED","timestamp":"2026-08-17T16:32:07.839954+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:10.189 [INFO] [docker:27f17ec4] #16 DONE 2.3s","timestamp":"2026-08-17T16:32:10.189324+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:11.449 [INFO] [docker:27f17ec4] #17 DONE 1.2s","timestamp":"2026-08-17T16:32:11.449829+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.525 [INFO] [docker:27f17ec4] build success: docker.fanson.cloud/fanson/fscp-system:develop-1f091f0","timestamp":"2026-08-17T16:32:12.525997+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.526 [INFO] [docker:27f17ec4] pushing docker.fanson.cloud/fanson/fscp-system:develop-1f091f0","timestamp":"2026-08-17T16:32:12.526117+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.627 [INFO] [docker:27f17ec4] The push refers to repository [docker.fanson.cloud/fanson/fscp-system]","timestamp":"2026-08-17T16:32:12.627579+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.662 [INFO] [docker:27f17ec4] 0b465b356b76: Preparing","timestamp":"2026-08-17T16:32:12.662851+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.662 [INFO] [docker:27f17ec4] 5f70bf18a086: Preparing","timestamp":"2026-08-17T16:32:12.662971+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] 71a2618c0925: Preparing","timestamp":"2026-08-17T16:32:12.663057+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] 6fc52eaf99f6: Preparing","timestamp":"2026-08-17T16:32:12.663156+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] cd4b3dc03178: Preparing","timestamp":"2026-08-17T16:32:12.663238+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] b4cfcb8385a8: Preparing","timestamp":"2026-08-17T16:32:12.663317+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] 2b730cf18c09: Preparing","timestamp":"2026-08-17T16:32:12.663396+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] edeaba958753: Preparing","timestamp":"2026-08-17T16:32:12.663477+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] 8bf42db0de72: Preparing","timestamp":"2026-08-17T16:32:12.663561+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] 31892cc314cb: Preparing","timestamp":"2026-08-17T16:32:12.663638+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] 11936051f93b: Preparing","timestamp":"2026-08-17T16:32:12.663714+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] b4cfcb8385a8: Waiting","timestamp":"2026-08-17T16:32:12.663800+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] 2b730cf18c09: Waiting","timestamp":"2026-08-17T16:32:12.663877+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.663 [INFO] [docker:27f17ec4] edeaba958753: Waiting","timestamp":"2026-08-17T16:32:12.663953+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.664 [INFO] [docker:27f17ec4] 8bf42db0de72: Waiting","timestamp":"2026-08-17T16:32:12.664028+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.664 [INFO] [docker:27f17ec4] 31892cc314cb: Waiting","timestamp":"2026-08-17T16:32:12.664104+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.664 [INFO] [docker:27f17ec4] 11936051f93b: Waiting","timestamp":"2026-08-17T16:32:12.664179+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:12.968 [INFO] [docker:27f17ec4] 5f70bf18a086: Layer already exists","timestamp":"2026-08-17T16:32:12.968868+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:13.056 [INFO] [docker:27f17ec4] 71a2618c0925: Layer already exists","timestamp":"2026-08-17T16:32:13.056919+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:13.057 [INFO] [docker:27f17ec4] cd4b3dc03178: Layer already exists","timestamp":"2026-08-17T16:32:13.057058+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:13.057 [INFO] [docker:27f17ec4] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-17T16:32:13.057167+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:13.081 [INFO] [docker:27f17ec4] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-17T16:32:13.081187+08:00"},{"seq":69,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:13.147 [INFO] [docker:27f17ec4] 8bf42db0de72: Layer already exists","timestamp":"2026-08-17T16:32:13.147047+08:00"},{"seq":70,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:13.170 [INFO] [docker:27f17ec4] 31892cc314cb: Layer already exists","timestamp":"2026-08-17T16:32:13.170446+08:00"},{"seq":71,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:13.170 [INFO] [docker:27f17ec4] 2b730cf18c09: Layer already exists","timestamp":"2026-08-17T16:32:13.170671+08:00"},{"seq":72,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:13.170 [INFO] [docker:27f17ec4] edeaba958753: Layer already exists","timestamp":"2026-08-17T16:32:13.170902+08:00"},{"seq":73,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:13.215 [INFO] [docker:27f17ec4] 11936051f93b: Layer already exists","timestamp":"2026-08-17T16:32:13.215083+08:00"},{"seq":74,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:23.905 [INFO] [docker:27f17ec4] 0b465b356b76: Pushed","timestamp":"2026-08-17T16:32:23.905375+08:00"},{"seq":75,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:24.677 [INFO] [docker:27f17ec4] develop-1f091f0: digest: sha256:a92975f035ceeab418d1af418eb28dce1144018806c922207f2e3b9296411c87 size: 2629","timestamp":"2026-08-17T16:32:24.677554+08:00"},{"seq":76,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:24.753 [INFO] [docker:27f17ec4] The push refers to repository [docker.fanson.cloud/fanson/fscp-system]","timestamp":"2026-08-17T16:32:24.753722+08:00"},{"seq":77,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:24.786 [INFO] [docker:27f17ec4] tag does not exist: docker.fanson.cloud/fanson/fscp-system:cache","timestamp":"2026-08-17T16:32:24.786921+08:00"},{"seq":78,"level":"ERROR","component":"docker","message":"[docker] 2026-08-17 16:32:24.787 [ERROR] [docker:27f17ec4] 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-17T16:32:24.787751+08:00"},{"seq":79,"level":"WARNING","component":"docker","message":"[docker] 2026-08-17 16:32:24.788 [WARNING] [docker:27f17ec4] 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-17T16:32:24.788171+08:00"},{"seq":80,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:32:24.788 [INFO] [orchestrator:27f17ec4] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-system:develop-1f091f0","timestamp":"2026-08-17T16:32:24.788286+08:00"},{"seq":81,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:32:24.791 [INFO] [orchestrator:27f17ec4] 🔨 构建服务: fanson/fscp-billing → 镜像标签 fanson/fscp-billing:develop-1f091f0","timestamp":"2026-08-17T16:32:24.791821+08:00"},{"seq":82,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:32:24.791 [INFO] [orchestrator:27f17ec4] 已自动注入 -pl fscp-modules/fscp-billing -am: mvn -pl fscp-modules/fscp-billing -am clean package -DskipTests","timestamp":"2026-08-17T16:32:24.791945+08:00"},{"seq":83,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:24.792 [INFO] [docker:27f17ec4] building docker.fanson.cloud/fanson/fscp-billing:develop-1f091f0 (skipping buildx — already known to fail)","timestamp":"2026-08-17T16:32:24.792327+08:00"},{"seq":84,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:25.160 [INFO] [docker:27f17ec4] #1 DONE 0.1s","timestamp":"2026-08-17T16:32:25.160794+08:00"},{"seq":85,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:25.359 [INFO] [docker:27f17ec4] #3 DONE 0.2s","timestamp":"2026-08-17T16:32:25.359824+08:00"},{"seq":86,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:26.918 [INFO] [docker:27f17ec4] #2 DONE 1.7s","timestamp":"2026-08-17T16:32:26.918945+08:00"},{"seq":87,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:27.073 [INFO] [docker:27f17ec4] #4 DONE 0.2s","timestamp":"2026-08-17T16:32:27.073541+08:00"},{"seq":88,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:27.175 [INFO] [docker:27f17ec4] #5 DONE 0.0s","timestamp":"2026-08-17T16:32:27.175911+08:00"},{"seq":89,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:27.176 [INFO] [docker:27f17ec4] #6 DONE 0.0s","timestamp":"2026-08-17T16:32:27.176042+08:00"},{"seq":90,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:27.350 [INFO] [docker:27f17ec4] #7 DONE 0.2s","timestamp":"2026-08-17T16:32:27.350023+08:00"},{"seq":91,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:27.545 [INFO] [docker:27f17ec4] #8 CACHED","timestamp":"2026-08-17T16:32:27.545723+08:00"},{"seq":92,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:27.545 [INFO] [docker:27f17ec4] #9 CACHED","timestamp":"2026-08-17T16:32:27.545849+08:00"},{"seq":93,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:27.545 [INFO] [docker:27f17ec4] #10 CACHED","timestamp":"2026-08-17T16:32:27.545942+08:00"},{"seq":94,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:27.546 [INFO] [docker:27f17ec4] #11 CACHED","timestamp":"2026-08-17T16:32:27.546031+08:00"},{"seq":95,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:29.075 [INFO] [docker:27f17ec4] #12 DONE 1.7s","timestamp":"2026-08-17T16:32:29.075103+08:00"},{"seq":96,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:44.212 [INFO] [docker:27f17ec4] #13 DONE 15.1s","timestamp":"2026-08-17T16:32:44.212389+08:00"},{"seq":97,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:44.628 [INFO] [docker:27f17ec4] #14 CACHED","timestamp":"2026-08-17T16:32:44.628095+08:00"},{"seq":98,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:47.043 [INFO] [docker:27f17ec4] #15 DONE 2.4s","timestamp":"2026-08-17T16:32:47.043069+08:00"},{"seq":99,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:48.292 [INFO] [docker:27f17ec4] #16 DONE 1.2s","timestamp":"2026-08-17T16:32:48.292464+08:00"},{"seq":100,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.125 [INFO] [docker:27f17ec4] build success: docker.fanson.cloud/fanson/fscp-billing:develop-1f091f0","timestamp":"2026-08-17T16:32:49.125112+08:00"},{"seq":101,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.125 [INFO] [docker:27f17ec4] pushing docker.fanson.cloud/fanson/fscp-billing:develop-1f091f0","timestamp":"2026-08-17T16:32:49.125212+08:00"},{"seq":102,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.162 [INFO] [docker:27f17ec4] The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]","timestamp":"2026-08-17T16:32:49.162460+08:00"},{"seq":103,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.207 [INFO] [docker:27f17ec4] a13eaa5543cd: Preparing","timestamp":"2026-08-17T16:32:49.207035+08:00"},{"seq":104,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.207 [INFO] [docker:27f17ec4] 5f70bf18a086: Preparing","timestamp":"2026-08-17T16:32:49.207152+08:00"},{"seq":105,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.207 [INFO] [docker:27f17ec4] 71a2618c0925: Preparing","timestamp":"2026-08-17T16:32:49.207256+08:00"},{"seq":106,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.207 [INFO] [docker:27f17ec4] 6fc52eaf99f6: Preparing","timestamp":"2026-08-17T16:32:49.207356+08:00"},{"seq":107,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.207 [INFO] [docker:27f17ec4] cd4b3dc03178: Preparing","timestamp":"2026-08-17T16:32:49.207451+08:00"},{"seq":108,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.207 [INFO] [docker:27f17ec4] b4cfcb8385a8: Preparing","timestamp":"2026-08-17T16:32:49.207548+08:00"},{"seq":109,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.207 [INFO] [docker:27f17ec4] 2b730cf18c09: Preparing","timestamp":"2026-08-17T16:32:49.207636+08:00"},{"seq":110,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.207 [INFO] [docker:27f17ec4] edeaba958753: Preparing","timestamp":"2026-08-17T16:32:49.207723+08:00"},{"seq":111,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.207 [INFO] [docker:27f17ec4] 8bf42db0de72: Preparing","timestamp":"2026-08-17T16:32:49.207827+08:00"},{"seq":112,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.207 [INFO] [docker:27f17ec4] 31892cc314cb: Preparing","timestamp":"2026-08-17T16:32:49.207921+08:00"},{"seq":113,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.208 [INFO] [docker:27f17ec4] 11936051f93b: Preparing","timestamp":"2026-08-17T16:32:49.208006+08:00"},{"seq":114,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.208 [INFO] [docker:27f17ec4] 31892cc314cb: Waiting","timestamp":"2026-08-17T16:32:49.208091+08:00"},{"seq":115,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.208 [INFO] [docker:27f17ec4] edeaba958753: Waiting","timestamp":"2026-08-17T16:32:49.208177+08:00"},{"seq":116,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.208 [INFO] [docker:27f17ec4] b4cfcb8385a8: Waiting","timestamp":"2026-08-17T16:32:49.208260+08:00"},{"seq":117,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.208 [INFO] [docker:27f17ec4] 2b730cf18c09: Waiting","timestamp":"2026-08-17T16:32:49.208343+08:00"},{"seq":118,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.208 [INFO] [docker:27f17ec4] 8bf42db0de72: Waiting","timestamp":"2026-08-17T16:32:49.208425+08:00"},{"seq":119,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.208 [INFO] [docker:27f17ec4] 11936051f93b: Waiting","timestamp":"2026-08-17T16:32:49.208507+08:00"},{"seq":120,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.527 [INFO] [docker:27f17ec4] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-17T16:32:49.527392+08:00"},{"seq":121,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.562 [INFO] [docker:27f17ec4] 5f70bf18a086: Layer already exists","timestamp":"2026-08-17T16:32:49.562439+08:00"},{"seq":122,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.562 [INFO] [docker:27f17ec4] 71a2618c0925: Layer already exists","timestamp":"2026-08-17T16:32:49.562600+08:00"},{"seq":123,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.562 [INFO] [docker:27f17ec4] cd4b3dc03178: Layer already exists","timestamp":"2026-08-17T16:32:49.562696+08:00"},{"seq":124,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.649 [INFO] [docker:27f17ec4] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-17T16:32:49.649206+08:00"},{"seq":125,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.660 [INFO] [docker:27f17ec4] 2b730cf18c09: Layer already exists","timestamp":"2026-08-17T16:32:49.660318+08:00"},{"seq":126,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.660 [INFO] [docker:27f17ec4] 8bf42db0de72: Layer already exists","timestamp":"2026-08-17T16:32:49.660537+08:00"},{"seq":127,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.660 [INFO] [docker:27f17ec4] edeaba958753: Layer already exists","timestamp":"2026-08-17T16:32:49.660767+08:00"},{"seq":128,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.768 [INFO] [docker:27f17ec4] 11936051f93b: Layer already exists","timestamp":"2026-08-17T16:32:49.768944+08:00"},{"seq":129,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:32:49.793 [INFO] [docker:27f17ec4] 31892cc314cb: Layer already exists","timestamp":"2026-08-17T16:32:49.793296+08:00"},{"seq":130,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:00.993 [INFO] [docker:27f17ec4] a13eaa5543cd: Pushed","timestamp":"2026-08-17T16:33:00.993444+08:00"},{"seq":131,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:01.697 [INFO] [docker:27f17ec4] develop-1f091f0: digest: sha256:ca940f49128e94ab911985c279223dff9e06284b084aac2b2c0d3d65643610e5 size: 2629","timestamp":"2026-08-17T16:33:01.697435+08:00"},{"seq":132,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:01.777 [INFO] [docker:27f17ec4] The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]","timestamp":"2026-08-17T16:33:01.777229+08:00"},{"seq":133,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:01.810 [INFO] [docker:27f17ec4] tag does not exist: docker.fanson.cloud/fanson/fscp-billing:cache","timestamp":"2026-08-17T16:33:01.810090+08:00"},{"seq":134,"level":"ERROR","component":"docker","message":"[docker] 2026-08-17 16:33:01.810 [ERROR] [docker:27f17ec4] 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-17T16:33:01.810942+08:00"},{"seq":135,"level":"WARNING","component":"docker","message":"[docker] 2026-08-17 16:33:01.811 [WARNING] [docker:27f17ec4] 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-17T16:33:01.811290+08:00"},{"seq":136,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:33:01.811 [INFO] [orchestrator:27f17ec4] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-billing:develop-1f091f0","timestamp":"2026-08-17T16:33:01.811393+08:00"},{"seq":137,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:33:01.815 [INFO] [orchestrator:27f17ec4] 🔨 构建服务: fanson/fscp-tenant → 镜像标签 fanson/fscp-tenant:develop-1f091f0","timestamp":"2026-08-17T16:33:01.815108+08:00"},{"seq":138,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:33:01.815 [INFO] [orchestrator:27f17ec4] 已自动注入 -pl fscp-modules/fscp-tenant -am: mvn -pl fscp-modules/fscp-tenant -am clean package -DskipTests","timestamp":"2026-08-17T16:33:01.815230+08:00"},{"seq":139,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:01.815 [INFO] [docker:27f17ec4] building docker.fanson.cloud/fanson/fscp-tenant:develop-1f091f0 (skipping buildx — already known to fail)","timestamp":"2026-08-17T16:33:01.815611+08:00"},{"seq":140,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:02.180 [INFO] [docker:27f17ec4] #1 DONE 0.1s","timestamp":"2026-08-17T16:33:02.180344+08:00"},{"seq":141,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:02.534 [INFO] [docker:27f17ec4] #3 DONE 0.3s","timestamp":"2026-08-17T16:33:02.534303+08:00"},{"seq":142,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:02.655 [INFO] [docker:27f17ec4] #2 DONE 0.4s","timestamp":"2026-08-17T16:33:02.655847+08:00"},{"seq":143,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:02.788 [INFO] [docker:27f17ec4] #4 DONE 0.2s","timestamp":"2026-08-17T16:33:02.788461+08:00"},{"seq":144,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:02.891 [INFO] [docker:27f17ec4] #5 DONE 0.0s","timestamp":"2026-08-17T16:33:02.891794+08:00"},{"seq":145,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:02.891 [INFO] [docker:27f17ec4] #6 DONE 0.0s","timestamp":"2026-08-17T16:33:02.891948+08:00"},{"seq":146,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:03.020 [INFO] [docker:27f17ec4] #7 DONE 0.2s","timestamp":"2026-08-17T16:33:03.020715+08:00"},{"seq":147,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:03.205 [INFO] [docker:27f17ec4] #8 CACHED","timestamp":"2026-08-17T16:33:03.205138+08:00"},{"seq":148,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:03.205 [INFO] [docker:27f17ec4] #9 CACHED","timestamp":"2026-08-17T16:33:03.205248+08:00"},{"seq":149,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:03.205 [INFO] [docker:27f17ec4] #10 CACHED","timestamp":"2026-08-17T16:33:03.205340+08:00"},{"seq":150,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:03.205 [INFO] [docker:27f17ec4] #11 CACHED","timestamp":"2026-08-17T16:33:03.205431+08:00"},{"seq":151,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:04.734 [INFO] [docker:27f17ec4] #12 DONE 1.7s","timestamp":"2026-08-17T16:33:04.734621+08:00"},{"seq":152,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:19.252 [INFO] [docker:27f17ec4] #13 DONE 14.5s","timestamp":"2026-08-17T16:33:19.252825+08:00"},{"seq":153,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:19.582 [INFO] [docker:27f17ec4] #14 CACHED","timestamp":"2026-08-17T16:33:19.582764+08:00"},{"seq":154,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:21.475 [INFO] [docker:27f17ec4] #15 DONE 1.9s","timestamp":"2026-08-17T16:33:21.475263+08:00"},{"seq":155,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:22.669 [INFO] [docker:27f17ec4] #16 DONE 1.1s","timestamp":"2026-08-17T16:33:22.669452+08:00"},{"seq":156,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.579 [INFO] [docker:27f17ec4] build success: docker.fanson.cloud/fanson/fscp-tenant:develop-1f091f0","timestamp":"2026-08-17T16:33:23.579759+08:00"},{"seq":157,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.579 [INFO] [docker:27f17ec4] pushing docker.fanson.cloud/fanson/fscp-tenant:develop-1f091f0","timestamp":"2026-08-17T16:33:23.579866+08:00"},{"seq":158,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.616 [INFO] [docker:27f17ec4] The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]","timestamp":"2026-08-17T16:33:23.616308+08:00"},{"seq":159,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.649 [INFO] [docker:27f17ec4] b3b85c024609: Preparing","timestamp":"2026-08-17T16:33:23.649266+08:00"},{"seq":160,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.649 [INFO] [docker:27f17ec4] 5f70bf18a086: Preparing","timestamp":"2026-08-17T16:33:23.649380+08:00"},{"seq":161,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.649 [INFO] [docker:27f17ec4] 71a2618c0925: Preparing","timestamp":"2026-08-17T16:33:23.649474+08:00"},{"seq":162,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.649 [INFO] [docker:27f17ec4] 6fc52eaf99f6: Preparing","timestamp":"2026-08-17T16:33:23.649565+08:00"},{"seq":163,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.649 [INFO] [docker:27f17ec4] cd4b3dc03178: Preparing","timestamp":"2026-08-17T16:33:23.649654+08:00"},{"seq":164,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.649 [INFO] [docker:27f17ec4] b4cfcb8385a8: Preparing","timestamp":"2026-08-17T16:33:23.649750+08:00"},{"seq":165,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.649 [INFO] [docker:27f17ec4] 2b730cf18c09: Preparing","timestamp":"2026-08-17T16:33:23.649839+08:00"},{"seq":166,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.649 [INFO] [docker:27f17ec4] edeaba958753: Preparing","timestamp":"2026-08-17T16:33:23.649924+08:00"},{"seq":167,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.650 [INFO] [docker:27f17ec4] 8bf42db0de72: Preparing","timestamp":"2026-08-17T16:33:23.650008+08:00"},{"seq":168,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.650 [INFO] [docker:27f17ec4] 31892cc314cb: Preparing","timestamp":"2026-08-17T16:33:23.650091+08:00"},{"seq":169,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.650 [INFO] [docker:27f17ec4] 11936051f93b: Preparing","timestamp":"2026-08-17T16:33:23.650173+08:00"},{"seq":170,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.650 [INFO] [docker:27f17ec4] b4cfcb8385a8: Waiting","timestamp":"2026-08-17T16:33:23.650256+08:00"},{"seq":171,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.650 [INFO] [docker:27f17ec4] 31892cc314cb: Waiting","timestamp":"2026-08-17T16:33:23.650340+08:00"},{"seq":172,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.650 [INFO] [docker:27f17ec4] edeaba958753: Waiting","timestamp":"2026-08-17T16:33:23.650424+08:00"},{"seq":173,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.650 [INFO] [docker:27f17ec4] 11936051f93b: Waiting","timestamp":"2026-08-17T16:33:23.650506+08:00"},{"seq":174,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.650 [INFO] [docker:27f17ec4] 8bf42db0de72: Waiting","timestamp":"2026-08-17T16:33:23.650589+08:00"},{"seq":175,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.650 [INFO] [docker:27f17ec4] 2b730cf18c09: Waiting","timestamp":"2026-08-17T16:33:23.650672+08:00"},{"seq":176,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:23.957 [INFO] [docker:27f17ec4] 5f70bf18a086: Layer already exists","timestamp":"2026-08-17T16:33:23.957412+08:00"},{"seq":177,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:24.044 [INFO] [docker:27f17ec4] cd4b3dc03178: Layer already exists","timestamp":"2026-08-17T16:33:24.044219+08:00"},{"seq":178,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:24.044 [INFO] [docker:27f17ec4] 71a2618c0925: Layer already exists","timestamp":"2026-08-17T16:33:24.044368+08:00"},{"seq":179,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:24.044 [INFO] [docker:27f17ec4] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-17T16:33:24.044457+08:00"},{"seq":180,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:24.067 [INFO] [docker:27f17ec4] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-17T16:33:24.067922+08:00"},{"seq":181,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:24.170 [INFO] [docker:27f17ec4] edeaba958753: Layer already exists","timestamp":"2026-08-17T16:33:24.170817+08:00"},{"seq":182,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:24.180 [INFO] [docker:27f17ec4] 31892cc314cb: Layer already exists","timestamp":"2026-08-17T16:33:24.181003+08:00"},{"seq":183,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:24.181 [INFO] [docker:27f17ec4] 2b730cf18c09: Layer already exists","timestamp":"2026-08-17T16:33:24.181350+08:00"},{"seq":184,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:24.182 [INFO] [docker:27f17ec4] 8bf42db0de72: Layer already exists","timestamp":"2026-08-17T16:33:24.182104+08:00"},{"seq":185,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:24.332 [INFO] [docker:27f17ec4] 11936051f93b: Layer already exists","timestamp":"2026-08-17T16:33:24.332103+08:00"},{"seq":186,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:32.628 [INFO] [docker:27f17ec4] b3b85c024609: Pushed","timestamp":"2026-08-17T16:33:32.628389+08:00"},{"seq":187,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:33.376 [INFO] [docker:27f17ec4] develop-1f091f0: digest: sha256:e5b9886d0a23f0b0334f41280174e3272a0537357b42370a7631cfdfa8fe8dae size: 2628","timestamp":"2026-08-17T16:33:33.376717+08:00"},{"seq":188,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:33.466 [INFO] [docker:27f17ec4] The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]","timestamp":"2026-08-17T16:33:33.466203+08:00"},{"seq":189,"level":"INFO","component":"docker","message":"[docker] 2026-08-17 16:33:33.501 [INFO] [docker:27f17ec4] tag does not exist: docker.fanson.cloud/fanson/fscp-tenant:cache","timestamp":"2026-08-17T16:33:33.501568+08:00"},{"seq":190,"level":"ERROR","component":"docker","message":"[docker] 2026-08-17 16:33:33.502 [ERROR] [docker:27f17ec4] 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-17T16:33:33.502536+08:00"},{"seq":191,"level":"WARNING","component":"docker","message":"[docker] 2026-08-17 16:33:33.502 [WARNING] [docker:27f17ec4] 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-17T16:33:33.502980+08:00"},{"seq":192,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-17 16:33:33.503 [INFO] [orchestrator:27f17ec4] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-tenant:develop-1f091f0","timestamp":"2026-08-17T16:33:33.503154+08:00"},{"seq":193,"level":"INFO","component":"agent","message":"[agent] 2026-08-17 16:33:33.539 [INFO] [agent:27f17ec4] ✅ 构建完成: 成功构建 5 个镜像: docker.fanson.cloud/fanson/fscp-gateway:develop-758e339, docker.fanson.cloud/fanson/fscp-auth:develop-f3e26ae, docker.fanson.cloud/fanson/fscp-system:develop-1f091f0, docker.fanson.cloud/fanson/fscp-billing:develop-1f091f0, docker.fanson.cloud/fanson/fscp-tenant:develop-1f091f0","timestamp":"2026-08-17T16:33:33.539813+08:00"},{"seq":194,"level":"INFO","component":"agent","message":"[agent] 2026-08-17 16:33:33.565 [INFO] [agent:27f17ec4] workspace cleaned","timestamp":"2026-08-17T16:33:33.565707+08:00"}]}