{"job_id":"197a4ece-1fd1-46f4-843f-f737dde298ea","filters":{"level":null,"component":null},"total":193,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-08-24 11:05:09.378 [INFO] [agent:197a4ece] 🚀 CI 流水线启动","timestamp":"2026-08-24T11:05:09.378100+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-08-24 11:05:09.378 [INFO] [git:197a4ece] cloning http://git.fanson.cloud/fanson/fscp-admin.git -> /app/data/workspace/197a4ece-1fd1-46f4-843f-f737dde298ea (branch=develop)","timestamp":"2026-08-24T11:05:09.378491+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-08-24 11:05:10.555 [INFO] [git:197a4ece] Cloning into '/app/data/workspace/197a4ece-1fd1-46f4-843f-f737dde298ea'...","timestamp":"2026-08-24T11:05:10.555571+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-08-24 11:05:10.555 [INFO] [git:197a4ece] git clone success: /app/data/workspace/197a4ece-1fd1-46f4-843f-f737dde298ea","timestamp":"2026-08-24T11:05:10.555679+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-08-24 11:05:10.556 [INFO] [agent:197a4ece] 📦 代码已克隆到 /app/data/workspace/197a4ece-1fd1-46f4-843f-f737dde298ea","timestamp":"2026-08-24T11:05:10.556009+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:05:10.561 [INFO] [orchestrator:197a4ece] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-08-24T11:05:10.561799+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:05:11.024 [INFO] [orchestrator:197a4ece] 📝 检测到变更的目录: fscp-modules, fscp-modules/fscp-system","timestamp":"2026-08-24T11:05:11.024340+08:00"},{"seq":8,"level":"INFO","component":"git","message":"[git] 2026-08-24 11:05:11.027 [INFO] [git:197a4ece] 目录 fscp-gateway 代码指纹: df7c7da","timestamp":"2026-08-24T11:05:11.027750+08:00"},{"seq":9,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:11.411 [INFO] [docker:197a4ece] 镜像已存在于 Registry: docker.fanson.cloud/fanson/fscp-gateway:develop-df7c7da（跳过构建）","timestamp":"2026-08-24T11:05:11.411266+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:05:11.411 [INFO] [orchestrator:197a4ece] SKIP fanson/fscp-gateway (镜像 fanson/fscp-gateway:develop-df7c7da 已存在，代码指纹 df7c7da)","timestamp":"2026-08-24T11:05:11.411412+08:00"},{"seq":11,"level":"INFO","component":"git","message":"[git] 2026-08-24 11:05:11.414 [INFO] [git:197a4ece] 目录 fscp-auth 代码指纹: 6db0579","timestamp":"2026-08-24T11:05:11.414919+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:11.796 [INFO] [docker:197a4ece] 镜像已存在于 Registry: docker.fanson.cloud/fanson/fscp-auth:develop-6db0579（跳过构建）","timestamp":"2026-08-24T11:05:11.796799+08:00"},{"seq":13,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:05:11.796 [INFO] [orchestrator:197a4ece] SKIP fanson/fscp-auth (镜像 fanson/fscp-auth:develop-6db0579 已存在，代码指纹 6db0579)","timestamp":"2026-08-24T11:05:11.796926+08:00"},{"seq":14,"level":"INFO","component":"git","message":"[git] 2026-08-24 11:05:11.800 [INFO] [git:197a4ece] 目录 fscp-modules 代码指纹: de2a0b6","timestamp":"2026-08-24T11:05:11.800415+08:00"},{"seq":15,"level":"INFO","component":"git","message":"[git] 2026-08-24 11:05:12.427 [INFO] [git:197a4ece] 目录 fscp-modules 代码指纹: de2a0b6","timestamp":"2026-08-24T11:05:12.427209+08:00"},{"seq":16,"level":"INFO","component":"git","message":"[git] 2026-08-24 11:05:13.061 [INFO] [git:197a4ece] 目录 fscp-modules 代码指纹: de2a0b6","timestamp":"2026-08-24T11:05:13.061677+08:00"},{"seq":17,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:05:13.675 [INFO] [orchestrator:197a4ece] 🔨 开始构建 3 个服务","timestamp":"2026-08-24T11:05:13.675282+08:00"},{"seq":18,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:05:13.679 [INFO] [orchestrator:197a4ece] 🔨 构建服务: fanson/fscp-system → 镜像标签 fanson/fscp-system:develop-de2a0b6","timestamp":"2026-08-24T11:05:13.679038+08:00"},{"seq":19,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:05:13.679 [INFO] [orchestrator:197a4ece] 已自动注入 -pl fscp-modules/fscp-system -am: mvn -pl fscp-modules/fscp-system -am clean package -DskipTests","timestamp":"2026-08-24T11:05:13.679161+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:13.679 [INFO] [docker:197a4ece] building docker.fanson.cloud/fanson/fscp-system:develop-de2a0b6 (with cache)","timestamp":"2026-08-24T11:05:13.679611+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:13.977 [INFO] [docker:197a4ece] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-08-24T11:05:13.977976+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:13.978 [INFO] [docker:197a4ece] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-08-24T11:05:13.978103+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:13.978 [INFO] [docker:197a4ece] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-08-24T11:05:13.978193+08:00"},{"seq":24,"level":"ERROR","component":"docker","message":"[docker] 2026-08-24 11:05:13.979 [ERROR] [docker:197a4ece] 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-24T11:05:13.979942+08:00"},{"seq":25,"level":"WARNING","component":"docker","message":"[docker] 2026-08-24 11:05:13.980 [WARNING] [docker:197a4ece] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-08-24T11:05:13.980368+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:13.980 [INFO] [docker:197a4ece] building docker.fanson.cloud/fanson/fscp-system:develop-de2a0b6 (native docker build)","timestamp":"2026-08-24T11:05:13.980473+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:14.855 [INFO] [docker:197a4ece] #1 DONE 0.6s","timestamp":"2026-08-24T11:05:14.855054+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:15.529 [INFO] [docker:197a4ece] #3 DONE 0.6s","timestamp":"2026-08-24T11:05:15.529831+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:16.038 [INFO] [docker:197a4ece] #2 DONE 1.1s","timestamp":"2026-08-24T11:05:16.038378+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:16.502 [INFO] [docker:197a4ece] #4 DONE 0.5s","timestamp":"2026-08-24T11:05:16.502645+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:16.711 [INFO] [docker:197a4ece] #5 DONE 0.0s","timestamp":"2026-08-24T11:05:16.711771+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:16.711 [INFO] [docker:197a4ece] #6 DONE 0.0s","timestamp":"2026-08-24T11:05:16.711922+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:17.298 [INFO] [docker:197a4ece] #7 DONE 0.7s","timestamp":"2026-08-24T11:05:17.298896+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:17.465 [INFO] [docker:197a4ece] #8 CACHED","timestamp":"2026-08-24T11:05:17.465507+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:17.465 [INFO] [docker:197a4ece] #9 CACHED","timestamp":"2026-08-24T11:05:17.465653+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:17.465 [INFO] [docker:197a4ece] #10 CACHED","timestamp":"2026-08-24T11:05:17.465778+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:17.465 [INFO] [docker:197a4ece] #11 CACHED","timestamp":"2026-08-24T11:05:17.465888+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:19.377 [INFO] [docker:197a4ece] #12 DONE 1.9s","timestamp":"2026-08-24T11:05:19.377589+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:35.145 [INFO] [docker:197a4ece] #13 DONE 15.7s","timestamp":"2026-08-24T11:05:35.145279+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:35.599 [INFO] [docker:197a4ece] #14 CACHED","timestamp":"2026-08-24T11:05:35.599851+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:37.799 [INFO] [docker:197a4ece] #15 DONE 2.2s","timestamp":"2026-08-24T11:05:37.799203+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:39.103 [INFO] [docker:197a4ece] #16 DONE 1.2s","timestamp":"2026-08-24T11:05:39.103824+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.434 [INFO] [docker:197a4ece] build success: docker.fanson.cloud/fanson/fscp-system:develop-de2a0b6","timestamp":"2026-08-24T11:05:40.434169+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.434 [INFO] [docker:197a4ece] pushing docker.fanson.cloud/fanson/fscp-system:develop-de2a0b6","timestamp":"2026-08-24T11:05:40.434277+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.501 [INFO] [docker:197a4ece] The push refers to repository [docker.fanson.cloud/fanson/fscp-system]","timestamp":"2026-08-24T11:05:40.501931+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.537 [INFO] [docker:197a4ece] 088610d12003: Preparing","timestamp":"2026-08-24T11:05:40.537177+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.537 [INFO] [docker:197a4ece] 5f70bf18a086: Preparing","timestamp":"2026-08-24T11:05:40.537300+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.537 [INFO] [docker:197a4ece] 71a2618c0925: Preparing","timestamp":"2026-08-24T11:05:40.537389+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.537 [INFO] [docker:197a4ece] 6fc52eaf99f6: Preparing","timestamp":"2026-08-24T11:05:40.537474+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.537 [INFO] [docker:197a4ece] cd4b3dc03178: Preparing","timestamp":"2026-08-24T11:05:40.537556+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.537 [INFO] [docker:197a4ece] b4cfcb8385a8: Preparing","timestamp":"2026-08-24T11:05:40.537637+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.537 [INFO] [docker:197a4ece] 2b730cf18c09: Preparing","timestamp":"2026-08-24T11:05:40.537716+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.537 [INFO] [docker:197a4ece] edeaba958753: Preparing","timestamp":"2026-08-24T11:05:40.537811+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.537 [INFO] [docker:197a4ece] 8bf42db0de72: Preparing","timestamp":"2026-08-24T11:05:40.537892+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.537 [INFO] [docker:197a4ece] b4cfcb8385a8: Waiting","timestamp":"2026-08-24T11:05:40.537971+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.538 [INFO] [docker:197a4ece] 31892cc314cb: Preparing","timestamp":"2026-08-24T11:05:40.538049+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.538 [INFO] [docker:197a4ece] edeaba958753: Waiting","timestamp":"2026-08-24T11:05:40.538126+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.538 [INFO] [docker:197a4ece] 2b730cf18c09: Waiting","timestamp":"2026-08-24T11:05:40.538204+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.538 [INFO] [docker:197a4ece] 11936051f93b: Preparing","timestamp":"2026-08-24T11:05:40.538281+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.538 [INFO] [docker:197a4ece] 8bf42db0de72: Waiting","timestamp":"2026-08-24T11:05:40.538358+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.538 [INFO] [docker:197a4ece] 31892cc314cb: Waiting","timestamp":"2026-08-24T11:05:40.538435+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.538 [INFO] [docker:197a4ece] 11936051f93b: Waiting","timestamp":"2026-08-24T11:05:40.538512+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.830 [INFO] [docker:197a4ece] 71a2618c0925: Layer already exists","timestamp":"2026-08-24T11:05:40.830978+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.912 [INFO] [docker:197a4ece] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-24T11:05:40.912559+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.912 [INFO] [docker:197a4ece] cd4b3dc03178: Layer already exists","timestamp":"2026-08-24T11:05:40.912748+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.912 [INFO] [docker:197a4ece] 5f70bf18a086: Layer already exists","timestamp":"2026-08-24T11:05:40.912845+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:40.934 [INFO] [docker:197a4ece] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-24T11:05:40.934502+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:41.040 [INFO] [docker:197a4ece] 31892cc314cb: Layer already exists","timestamp":"2026-08-24T11:05:41.040580+08:00"},{"seq":69,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:41.055 [INFO] [docker:197a4ece] edeaba958753: Layer already exists","timestamp":"2026-08-24T11:05:41.055841+08:00"},{"seq":70,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:41.055 [INFO] [docker:197a4ece] 8bf42db0de72: Layer already exists","timestamp":"2026-08-24T11:05:41.055956+08:00"},{"seq":71,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:41.056 [INFO] [docker:197a4ece] 2b730cf18c09: Layer already exists","timestamp":"2026-08-24T11:05:41.056081+08:00"},{"seq":72,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:41.135 [INFO] [docker:197a4ece] 11936051f93b: Layer already exists","timestamp":"2026-08-24T11:05:41.135190+08:00"},{"seq":73,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:51.880 [INFO] [docker:197a4ece] 088610d12003: Pushed","timestamp":"2026-08-24T11:05:51.880821+08:00"},{"seq":74,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:52.695 [INFO] [docker:197a4ece] develop-de2a0b6: digest: sha256:dcd12e18acfabce0c126f5f39456e6c56cb83be8f17631623a75af8a0234c368 size: 2629","timestamp":"2026-08-24T11:05:52.695058+08:00"},{"seq":75,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:52.791 [INFO] [docker:197a4ece] The push refers to repository [docker.fanson.cloud/fanson/fscp-system]","timestamp":"2026-08-24T11:05:52.791317+08:00"},{"seq":76,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:52.824 [INFO] [docker:197a4ece] tag does not exist: docker.fanson.cloud/fanson/fscp-system:cache","timestamp":"2026-08-24T11:05:52.824938+08:00"},{"seq":77,"level":"ERROR","component":"docker","message":"[docker] 2026-08-24 11:05:52.825 [ERROR] [docker:197a4ece] 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-24T11:05:52.825738+08:00"},{"seq":78,"level":"WARNING","component":"docker","message":"[docker] 2026-08-24 11:05:52.826 [WARNING] [docker:197a4ece] 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-24T11:05:52.826073+08:00"},{"seq":79,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:05:52.826 [INFO] [orchestrator:197a4ece] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-system:develop-de2a0b6","timestamp":"2026-08-24T11:05:52.826206+08:00"},{"seq":80,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:05:52.829 [INFO] [orchestrator:197a4ece] 🔨 构建服务: fanson/fscp-billing → 镜像标签 fanson/fscp-billing:develop-de2a0b6","timestamp":"2026-08-24T11:05:52.829870+08:00"},{"seq":81,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:05:52.829 [INFO] [orchestrator:197a4ece] 已自动注入 -pl fscp-modules/fscp-billing -am: mvn -pl fscp-modules/fscp-billing -am clean package -DskipTests","timestamp":"2026-08-24T11:05:52.829999+08:00"},{"seq":82,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:52.830 [INFO] [docker:197a4ece] building docker.fanson.cloud/fanson/fscp-billing:develop-de2a0b6 (skipping buildx — already known to fail)","timestamp":"2026-08-24T11:05:52.830379+08:00"},{"seq":83,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:53.290 [INFO] [docker:197a4ece] #1 DONE 0.2s","timestamp":"2026-08-24T11:05:53.290131+08:00"},{"seq":84,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:53.776 [INFO] [docker:197a4ece] #3 DONE 0.4s","timestamp":"2026-08-24T11:05:53.776683+08:00"},{"seq":85,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:54.661 [INFO] [docker:197a4ece] #2 DONE 1.3s","timestamp":"2026-08-24T11:05:54.661326+08:00"},{"seq":86,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:54.849 [INFO] [docker:197a4ece] #4 DONE 0.2s","timestamp":"2026-08-24T11:05:54.849117+08:00"},{"seq":87,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:54.969 [INFO] [docker:197a4ece] #5 DONE 0.0s","timestamp":"2026-08-24T11:05:54.969198+08:00"},{"seq":88,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:54.969 [INFO] [docker:197a4ece] #6 DONE 0.0s","timestamp":"2026-08-24T11:05:54.969339+08:00"},{"seq":89,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:55.158 [INFO] [docker:197a4ece] #7 DONE 0.3s","timestamp":"2026-08-24T11:05:55.158763+08:00"},{"seq":90,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:55.376 [INFO] [docker:197a4ece] #8 CACHED","timestamp":"2026-08-24T11:05:55.376660+08:00"},{"seq":91,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:55.376 [INFO] [docker:197a4ece] #9 CACHED","timestamp":"2026-08-24T11:05:55.376815+08:00"},{"seq":92,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:55.376 [INFO] [docker:197a4ece] #10 CACHED","timestamp":"2026-08-24T11:05:55.376928+08:00"},{"seq":93,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:55.377 [INFO] [docker:197a4ece] #11 CACHED","timestamp":"2026-08-24T11:05:55.377038+08:00"},{"seq":94,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:05:57.071 [INFO] [docker:197a4ece] #12 DONE 1.8s","timestamp":"2026-08-24T11:05:57.071758+08:00"},{"seq":95,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:12.717 [INFO] [docker:197a4ece] #13 DONE 15.6s","timestamp":"2026-08-24T11:06:12.717690+08:00"},{"seq":96,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:13.133 [INFO] [docker:197a4ece] #14 CACHED","timestamp":"2026-08-24T11:06:13.133040+08:00"},{"seq":97,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:15.636 [INFO] [docker:197a4ece] #15 DONE 2.5s","timestamp":"2026-08-24T11:06:15.636975+08:00"},{"seq":98,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:17.649 [INFO] [docker:197a4ece] #16 DONE 1.9s","timestamp":"2026-08-24T11:06:17.649321+08:00"},{"seq":99,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.067 [INFO] [docker:197a4ece] build success: docker.fanson.cloud/fanson/fscp-billing:develop-de2a0b6","timestamp":"2026-08-24T11:06:19.067984+08:00"},{"seq":100,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.068 [INFO] [docker:197a4ece] pushing docker.fanson.cloud/fanson/fscp-billing:develop-de2a0b6","timestamp":"2026-08-24T11:06:19.068091+08:00"},{"seq":101,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.138 [INFO] [docker:197a4ece] The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]","timestamp":"2026-08-24T11:06:19.138530+08:00"},{"seq":102,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.234 [INFO] [docker:197a4ece] c6279fab6f83: Preparing","timestamp":"2026-08-24T11:06:19.235003+08:00"},{"seq":103,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] 5f70bf18a086: Preparing","timestamp":"2026-08-24T11:06:19.235133+08:00"},{"seq":104,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] 71a2618c0925: Preparing","timestamp":"2026-08-24T11:06:19.235226+08:00"},{"seq":105,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] 6fc52eaf99f6: Preparing","timestamp":"2026-08-24T11:06:19.235312+08:00"},{"seq":106,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] cd4b3dc03178: Preparing","timestamp":"2026-08-24T11:06:19.235395+08:00"},{"seq":107,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] b4cfcb8385a8: Preparing","timestamp":"2026-08-24T11:06:19.235477+08:00"},{"seq":108,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] 2b730cf18c09: Preparing","timestamp":"2026-08-24T11:06:19.235555+08:00"},{"seq":109,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] edeaba958753: Preparing","timestamp":"2026-08-24T11:06:19.235634+08:00"},{"seq":110,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] 8bf42db0de72: Preparing","timestamp":"2026-08-24T11:06:19.235712+08:00"},{"seq":111,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] 31892cc314cb: Preparing","timestamp":"2026-08-24T11:06:19.235803+08:00"},{"seq":112,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] 11936051f93b: Preparing","timestamp":"2026-08-24T11:06:19.235882+08:00"},{"seq":113,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.235 [INFO] [docker:197a4ece] b4cfcb8385a8: Waiting","timestamp":"2026-08-24T11:06:19.235959+08:00"},{"seq":114,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.236 [INFO] [docker:197a4ece] 2b730cf18c09: Waiting","timestamp":"2026-08-24T11:06:19.236036+08:00"},{"seq":115,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.236 [INFO] [docker:197a4ece] edeaba958753: Waiting","timestamp":"2026-08-24T11:06:19.236111+08:00"},{"seq":116,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.236 [INFO] [docker:197a4ece] 8bf42db0de72: Waiting","timestamp":"2026-08-24T11:06:19.236188+08:00"},{"seq":117,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.236 [INFO] [docker:197a4ece] 31892cc314cb: Waiting","timestamp":"2026-08-24T11:06:19.236263+08:00"},{"seq":118,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.236 [INFO] [docker:197a4ece] 11936051f93b: Waiting","timestamp":"2026-08-24T11:06:19.236339+08:00"},{"seq":119,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.536 [INFO] [docker:197a4ece] cd4b3dc03178: Layer already exists","timestamp":"2026-08-24T11:06:19.536720+08:00"},{"seq":120,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.589 [INFO] [docker:197a4ece] 5f70bf18a086: Layer already exists","timestamp":"2026-08-24T11:06:19.589988+08:00"},{"seq":121,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.590 [INFO] [docker:197a4ece] 71a2618c0925: Layer already exists","timestamp":"2026-08-24T11:06:19.590479+08:00"},{"seq":122,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.590 [INFO] [docker:197a4ece] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-24T11:06:19.590580+08:00"},{"seq":123,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.650 [INFO] [docker:197a4ece] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-24T11:06:19.650651+08:00"},{"seq":124,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.669 [INFO] [docker:197a4ece] 8bf42db0de72: Layer already exists","timestamp":"2026-08-24T11:06:19.669193+08:00"},{"seq":125,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.669 [INFO] [docker:197a4ece] edeaba958753: Layer already exists","timestamp":"2026-08-24T11:06:19.669312+08:00"},{"seq":126,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.669 [INFO] [docker:197a4ece] 2b730cf18c09: Layer already exists","timestamp":"2026-08-24T11:06:19.669468+08:00"},{"seq":127,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.768 [INFO] [docker:197a4ece] 11936051f93b: Layer already exists","timestamp":"2026-08-24T11:06:19.768056+08:00"},{"seq":128,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:19.841 [INFO] [docker:197a4ece] 31892cc314cb: Layer already exists","timestamp":"2026-08-24T11:06:19.841676+08:00"},{"seq":129,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:31.189 [INFO] [docker:197a4ece] c6279fab6f83: Pushed","timestamp":"2026-08-24T11:06:31.189572+08:00"},{"seq":130,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:31.904 [INFO] [docker:197a4ece] develop-de2a0b6: digest: sha256:7ffb5e7b8b1913b90a711980ebb36cef49bc0211794324dcea57a8f34467e1a0 size: 2629","timestamp":"2026-08-24T11:06:31.904011+08:00"},{"seq":131,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:32.000 [INFO] [docker:197a4ece] The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]","timestamp":"2026-08-24T11:06:32.000691+08:00"},{"seq":132,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:32.032 [INFO] [docker:197a4ece] tag does not exist: docker.fanson.cloud/fanson/fscp-billing:cache","timestamp":"2026-08-24T11:06:32.032903+08:00"},{"seq":133,"level":"ERROR","component":"docker","message":"[docker] 2026-08-24 11:06:32.033 [ERROR] [docker:197a4ece] 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-24T11:06:32.033786+08:00"},{"seq":134,"level":"WARNING","component":"docker","message":"[docker] 2026-08-24 11:06:32.034 [WARNING] [docker:197a4ece] 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-24T11:06:32.034242+08:00"},{"seq":135,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:06:32.034 [INFO] [orchestrator:197a4ece] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-billing:develop-de2a0b6","timestamp":"2026-08-24T11:06:32.034379+08:00"},{"seq":136,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:06:32.037 [INFO] [orchestrator:197a4ece] 🔨 构建服务: fanson/fscp-tenant → 镜像标签 fanson/fscp-tenant:develop-de2a0b6","timestamp":"2026-08-24T11:06:32.037612+08:00"},{"seq":137,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:06:32.037 [INFO] [orchestrator:197a4ece] 已自动注入 -pl fscp-modules/fscp-tenant -am: mvn -pl fscp-modules/fscp-tenant -am clean package -DskipTests","timestamp":"2026-08-24T11:06:32.037735+08:00"},{"seq":138,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:32.038 [INFO] [docker:197a4ece] building docker.fanson.cloud/fanson/fscp-tenant:develop-de2a0b6 (skipping buildx — already known to fail)","timestamp":"2026-08-24T11:06:32.038108+08:00"},{"seq":139,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:32.576 [INFO] [docker:197a4ece] #1 DONE 0.2s","timestamp":"2026-08-24T11:06:32.576414+08:00"},{"seq":140,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:33.195 [INFO] [docker:197a4ece] #3 DONE 0.6s","timestamp":"2026-08-24T11:06:33.195870+08:00"},{"seq":141,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:33.383 [INFO] [docker:197a4ece] #2 DONE 0.7s","timestamp":"2026-08-24T11:06:33.383740+08:00"},{"seq":142,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:33.593 [INFO] [docker:197a4ece] #4 DONE 0.2s","timestamp":"2026-08-24T11:06:33.593706+08:00"},{"seq":143,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:33.704 [INFO] [docker:197a4ece] #5 DONE 0.0s","timestamp":"2026-08-24T11:06:33.704407+08:00"},{"seq":144,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:33.704 [INFO] [docker:197a4ece] #6 DONE 0.0s","timestamp":"2026-08-24T11:06:33.704579+08:00"},{"seq":145,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:33.881 [INFO] [docker:197a4ece] #7 DONE 0.2s","timestamp":"2026-08-24T11:06:33.881291+08:00"},{"seq":146,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:34.076 [INFO] [docker:197a4ece] #8 CACHED","timestamp":"2026-08-24T11:06:34.076859+08:00"},{"seq":147,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:34.076 [INFO] [docker:197a4ece] #9 CACHED","timestamp":"2026-08-24T11:06:34.076977+08:00"},{"seq":148,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:34.077 [INFO] [docker:197a4ece] #10 CACHED","timestamp":"2026-08-24T11:06:34.077075+08:00"},{"seq":149,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:34.077 [INFO] [docker:197a4ece] #11 CACHED","timestamp":"2026-08-24T11:06:34.077169+08:00"},{"seq":150,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:35.705 [INFO] [docker:197a4ece] #12 DONE 1.8s","timestamp":"2026-08-24T11:06:35.705695+08:00"},{"seq":151,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:50.533 [INFO] [docker:197a4ece] #13 DONE 14.8s","timestamp":"2026-08-24T11:06:50.533453+08:00"},{"seq":152,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:50.856 [INFO] [docker:197a4ece] #14 CACHED","timestamp":"2026-08-24T11:06:50.856468+08:00"},{"seq":153,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:52.711 [INFO] [docker:197a4ece] #15 DONE 1.9s","timestamp":"2026-08-24T11:06:52.711774+08:00"},{"seq":154,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:53.861 [INFO] [docker:197a4ece] #16 DONE 1.0s","timestamp":"2026-08-24T11:06:53.861796+08:00"},{"seq":155,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.125 [INFO] [docker:197a4ece] build success: docker.fanson.cloud/fanson/fscp-tenant:develop-de2a0b6","timestamp":"2026-08-24T11:06:55.125889+08:00"},{"seq":156,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.126 [INFO] [docker:197a4ece] pushing docker.fanson.cloud/fanson/fscp-tenant:develop-de2a0b6","timestamp":"2026-08-24T11:06:55.126014+08:00"},{"seq":157,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.170 [INFO] [docker:197a4ece] The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]","timestamp":"2026-08-24T11:06:55.170616+08:00"},{"seq":158,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.205 [INFO] [docker:197a4ece] 23c63602bfa3: Preparing","timestamp":"2026-08-24T11:06:55.205602+08:00"},{"seq":159,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.205 [INFO] [docker:197a4ece] 5f70bf18a086: Preparing","timestamp":"2026-08-24T11:06:55.205725+08:00"},{"seq":160,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.205 [INFO] [docker:197a4ece] 71a2618c0925: Preparing","timestamp":"2026-08-24T11:06:55.205841+08:00"},{"seq":161,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.205 [INFO] [docker:197a4ece] 6fc52eaf99f6: Preparing","timestamp":"2026-08-24T11:06:55.205940+08:00"},{"seq":162,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.206 [INFO] [docker:197a4ece] cd4b3dc03178: Preparing","timestamp":"2026-08-24T11:06:55.206040+08:00"},{"seq":163,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.206 [INFO] [docker:197a4ece] b4cfcb8385a8: Preparing","timestamp":"2026-08-24T11:06:55.206158+08:00"},{"seq":164,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.206 [INFO] [docker:197a4ece] 2b730cf18c09: Preparing","timestamp":"2026-08-24T11:06:55.206264+08:00"},{"seq":165,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.206 [INFO] [docker:197a4ece] edeaba958753: Preparing","timestamp":"2026-08-24T11:06:55.206357+08:00"},{"seq":166,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.206 [INFO] [docker:197a4ece] 8bf42db0de72: Preparing","timestamp":"2026-08-24T11:06:55.206449+08:00"},{"seq":167,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.206 [INFO] [docker:197a4ece] 31892cc314cb: Preparing","timestamp":"2026-08-24T11:06:55.206539+08:00"},{"seq":168,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.206 [INFO] [docker:197a4ece] 11936051f93b: Preparing","timestamp":"2026-08-24T11:06:55.206628+08:00"},{"seq":169,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.206 [INFO] [docker:197a4ece] b4cfcb8385a8: Waiting","timestamp":"2026-08-24T11:06:55.206717+08:00"},{"seq":170,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.206 [INFO] [docker:197a4ece] edeaba958753: Waiting","timestamp":"2026-08-24T11:06:55.206830+08:00"},{"seq":171,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.206 [INFO] [docker:197a4ece] 2b730cf18c09: Waiting","timestamp":"2026-08-24T11:06:55.206920+08:00"},{"seq":172,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.207 [INFO] [docker:197a4ece] 8bf42db0de72: Waiting","timestamp":"2026-08-24T11:06:55.207010+08:00"},{"seq":173,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.207 [INFO] [docker:197a4ece] 11936051f93b: Waiting","timestamp":"2026-08-24T11:06:55.207100+08:00"},{"seq":174,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.207 [INFO] [docker:197a4ece] 31892cc314cb: Waiting","timestamp":"2026-08-24T11:06:55.207189+08:00"},{"seq":175,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.481 [INFO] [docker:197a4ece] 71a2618c0925: Layer already exists","timestamp":"2026-08-24T11:06:55.481512+08:00"},{"seq":176,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.538 [INFO] [docker:197a4ece] 5f70bf18a086: Layer already exists","timestamp":"2026-08-24T11:06:55.538251+08:00"},{"seq":177,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.538 [INFO] [docker:197a4ece] cd4b3dc03178: Layer already exists","timestamp":"2026-08-24T11:06:55.538460+08:00"},{"seq":178,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.538 [INFO] [docker:197a4ece] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-24T11:06:55.538723+08:00"},{"seq":179,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.580 [INFO] [docker:197a4ece] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-24T11:06:55.580567+08:00"},{"seq":180,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.592 [INFO] [docker:197a4ece] 2b730cf18c09: Layer already exists","timestamp":"2026-08-24T11:06:55.592901+08:00"},{"seq":181,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.671 [INFO] [docker:197a4ece] edeaba958753: Layer already exists","timestamp":"2026-08-24T11:06:55.671658+08:00"},{"seq":182,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.671 [INFO] [docker:197a4ece] 8bf42db0de72: Layer already exists","timestamp":"2026-08-24T11:06:55.671796+08:00"},{"seq":183,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.714 [INFO] [docker:197a4ece] 11936051f93b: Layer already exists","timestamp":"2026-08-24T11:06:55.714076+08:00"},{"seq":184,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:06:55.714 [INFO] [docker:197a4ece] 31892cc314cb: Layer already exists","timestamp":"2026-08-24T11:06:55.714185+08:00"},{"seq":185,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:07:04.129 [INFO] [docker:197a4ece] 23c63602bfa3: Pushed","timestamp":"2026-08-24T11:07:04.129211+08:00"},{"seq":186,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:07:04.910 [INFO] [docker:197a4ece] develop-de2a0b6: digest: sha256:337258b317ac1aca213cb791d304bb8c8982b974475b88a1ba0b68385d776905 size: 2628","timestamp":"2026-08-24T11:07:04.910654+08:00"},{"seq":187,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:07:05.017 [INFO] [docker:197a4ece] The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]","timestamp":"2026-08-24T11:07:05.017286+08:00"},{"seq":188,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 11:07:05.051 [INFO] [docker:197a4ece] tag does not exist: docker.fanson.cloud/fanson/fscp-tenant:cache","timestamp":"2026-08-24T11:07:05.051905+08:00"},{"seq":189,"level":"ERROR","component":"docker","message":"[docker] 2026-08-24 11:07:05.052 [ERROR] [docker:197a4ece] 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-24T11:07:05.052717+08:00"},{"seq":190,"level":"WARNING","component":"docker","message":"[docker] 2026-08-24 11:07:05.053 [WARNING] [docker:197a4ece] 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-24T11:07:05.053147+08:00"},{"seq":191,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 11:07:05.053 [INFO] [orchestrator:197a4ece] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-tenant:develop-de2a0b6","timestamp":"2026-08-24T11:07:05.053312+08:00"},{"seq":192,"level":"INFO","component":"agent","message":"[agent] 2026-08-24 11:07:05.089 [INFO] [agent:197a4ece] ✅ 构建完成: 成功构建 5 个镜像: docker.fanson.cloud/fanson/fscp-gateway:develop-df7c7da, docker.fanson.cloud/fanson/fscp-auth:develop-6db0579, docker.fanson.cloud/fanson/fscp-system:develop-de2a0b6, docker.fanson.cloud/fanson/fscp-billing:develop-de2a0b6, docker.fanson.cloud/fanson/fscp-tenant:develop-de2a0b6","timestamp":"2026-08-24T11:07:05.089955+08:00"},{"seq":193,"level":"INFO","component":"agent","message":"[agent] 2026-08-24 11:07:05.120 [INFO] [agent:197a4ece] workspace cleaned","timestamp":"2026-08-24T11:07:05.120290+08:00"}]}