{"job_id":"2181c947-a08a-47bd-8c53-8cef06c8deca","filters":{"level":null,"component":null},"total":194,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-08-24 13:55:19.533 [INFO] [agent:2181c947] 🚀 CI 流水线启动","timestamp":"2026-08-24T13:55:19.533227+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-08-24 13:55:19.533 [INFO] [git:2181c947] cloning http://git.fanson.cloud/fanson/fscp-admin.git -> /app/data/workspace/2181c947-a08a-47bd-8c53-8cef06c8deca (branch=develop)","timestamp":"2026-08-24T13:55:19.533564+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-08-24 13:55:20.629 [INFO] [git:2181c947] Cloning into '/app/data/workspace/2181c947-a08a-47bd-8c53-8cef06c8deca'...","timestamp":"2026-08-24T13:55:20.629411+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-08-24 13:55:20.629 [INFO] [git:2181c947] git clone success: /app/data/workspace/2181c947-a08a-47bd-8c53-8cef06c8deca","timestamp":"2026-08-24T13:55:20.629529+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-08-24 13:55:20.629 [INFO] [agent:2181c947] 📦 代码已克隆到 /app/data/workspace/2181c947-a08a-47bd-8c53-8cef06c8deca","timestamp":"2026-08-24T13:55:20.629832+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:55:20.632 [INFO] [orchestrator:2181c947] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-08-24T13:55:20.632319+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:55:21.099 [INFO] [orchestrator:2181c947] 📝 检测到变更的目录: fscp-modules, fscp-modules/fscp-system, fscp-modules/fscp-tenant","timestamp":"2026-08-24T13:55:21.099106+08:00"},{"seq":8,"level":"INFO","component":"git","message":"[git] 2026-08-24 13:55:21.102 [INFO] [git:2181c947] 目录 fscp-gateway 代码指纹: df7c7da","timestamp":"2026-08-24T13:55:21.102514+08:00"},{"seq":9,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:21.552 [INFO] [docker:2181c947] 镜像已存在于 Registry: docker.fanson.cloud/fanson/fscp-gateway:develop-df7c7da（跳过构建）","timestamp":"2026-08-24T13:55:21.552108+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:55:21.552 [INFO] [orchestrator:2181c947] SKIP fanson/fscp-gateway (镜像 fanson/fscp-gateway:develop-df7c7da 已存在，代码指纹 df7c7da)","timestamp":"2026-08-24T13:55:21.552242+08:00"},{"seq":11,"level":"INFO","component":"git","message":"[git] 2026-08-24 13:55:21.555 [INFO] [git:2181c947] 目录 fscp-auth 代码指纹: 6db0579","timestamp":"2026-08-24T13:55:21.555945+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:21.934 [INFO] [docker:2181c947] 镜像已存在于 Registry: docker.fanson.cloud/fanson/fscp-auth:develop-6db0579（跳过构建）","timestamp":"2026-08-24T13:55:21.934289+08:00"},{"seq":13,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:55:21.934 [INFO] [orchestrator:2181c947] SKIP fanson/fscp-auth (镜像 fanson/fscp-auth:develop-6db0579 已存在，代码指纹 6db0579)","timestamp":"2026-08-24T13:55:21.934423+08:00"},{"seq":14,"level":"INFO","component":"git","message":"[git] 2026-08-24 13:55:21.938 [INFO] [git:2181c947] 目录 fscp-modules 代码指纹: 503e62e","timestamp":"2026-08-24T13:55:21.938148+08:00"},{"seq":15,"level":"INFO","component":"git","message":"[git] 2026-08-24 13:55:22.568 [INFO] [git:2181c947] 目录 fscp-modules 代码指纹: 503e62e","timestamp":"2026-08-24T13:55:22.568152+08:00"},{"seq":16,"level":"INFO","component":"git","message":"[git] 2026-08-24 13:55:23.198 [INFO] [git:2181c947] 目录 fscp-modules 代码指纹: 503e62e","timestamp":"2026-08-24T13:55:23.198544+08:00"},{"seq":17,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:55:23.818 [INFO] [orchestrator:2181c947] 🔨 开始构建 3 个服务","timestamp":"2026-08-24T13:55:23.818590+08:00"},{"seq":18,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:55:23.822 [INFO] [orchestrator:2181c947] 🔨 构建服务: fanson/fscp-system → 镜像标签 fanson/fscp-system:develop-503e62e","timestamp":"2026-08-24T13:55:23.822047+08:00"},{"seq":19,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:55:23.822 [INFO] [orchestrator:2181c947] 已自动注入 -pl fscp-modules/fscp-system -am: mvn -pl fscp-modules/fscp-system -am clean package -DskipTests","timestamp":"2026-08-24T13:55:23.822167+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:23.822 [INFO] [docker:2181c947] building docker.fanson.cloud/fanson/fscp-system:develop-503e62e (with cache)","timestamp":"2026-08-24T13:55:23.822601+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:24.106 [INFO] [docker:2181c947] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-08-24T13:55:24.106858+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:24.106 [INFO] [docker:2181c947] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-08-24T13:55:24.106991+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:24.107 [INFO] [docker:2181c947] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-08-24T13:55:24.107081+08:00"},{"seq":24,"level":"ERROR","component":"docker","message":"[docker] 2026-08-24 13:55:24.109 [ERROR] [docker:2181c947] 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-24T13:55:24.109008+08:00"},{"seq":25,"level":"WARNING","component":"docker","message":"[docker] 2026-08-24 13:55:24.109 [WARNING] [docker:2181c947] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-08-24T13:55:24.109340+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:24.109 [INFO] [docker:2181c947] building docker.fanson.cloud/fanson/fscp-system:develop-503e62e (native docker build)","timestamp":"2026-08-24T13:55:24.109438+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:24.949 [INFO] [docker:2181c947] #1 DONE 0.6s","timestamp":"2026-08-24T13:55:24.949541+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:25.294 [INFO] [docker:2181c947] #2 DONE 0.0s","timestamp":"2026-08-24T13:55:25.294566+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:25.657 [INFO] [docker:2181c947] #4 DONE 0.6s","timestamp":"2026-08-24T13:55:25.657550+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:27.349 [INFO] [docker:2181c947] #3 DONE 2.3s","timestamp":"2026-08-24T13:55:27.349386+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:27.835 [INFO] [docker:2181c947] #5 DONE 0.5s","timestamp":"2026-08-24T13:55:27.835721+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:28.055 [INFO] [docker:2181c947] #6 DONE 0.0s","timestamp":"2026-08-24T13:55:28.056001+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:28.056 [INFO] [docker:2181c947] #7 DONE 0.0s","timestamp":"2026-08-24T13:55:28.056155+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:28.720 [INFO] [docker:2181c947] #8 DONE 0.8s","timestamp":"2026-08-24T13:55:28.720351+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:28.918 [INFO] [docker:2181c947] #9 CACHED","timestamp":"2026-08-24T13:55:28.918584+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:28.918 [INFO] [docker:2181c947] #10 CACHED","timestamp":"2026-08-24T13:55:28.918711+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:28.918 [INFO] [docker:2181c947] #11 CACHED","timestamp":"2026-08-24T13:55:28.918821+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:28.918 [INFO] [docker:2181c947] #12 CACHED","timestamp":"2026-08-24T13:55:28.918917+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:30.677 [INFO] [docker:2181c947] #13 DONE 1.9s","timestamp":"2026-08-24T13:55:30.677543+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:46.655 [INFO] [docker:2181c947] #14 DONE 15.9s","timestamp":"2026-08-24T13:55:46.655295+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:47.115 [INFO] [docker:2181c947] #15 CACHED","timestamp":"2026-08-24T13:55:47.115777+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:49.353 [INFO] [docker:2181c947] #16 DONE 2.2s","timestamp":"2026-08-24T13:55:49.353202+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:50.669 [INFO] [docker:2181c947] #17 DONE 1.2s","timestamp":"2026-08-24T13:55:50.669050+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.778 [INFO] [docker:2181c947] build success: docker.fanson.cloud/fanson/fscp-system:develop-503e62e","timestamp":"2026-08-24T13:55:51.778394+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.778 [INFO] [docker:2181c947] pushing docker.fanson.cloud/fanson/fscp-system:develop-503e62e","timestamp":"2026-08-24T13:55:51.778500+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.817 [INFO] [docker:2181c947] The push refers to repository [docker.fanson.cloud/fanson/fscp-system]","timestamp":"2026-08-24T13:55:51.817569+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.851 [INFO] [docker:2181c947] fb483d1b9fd5: Preparing","timestamp":"2026-08-24T13:55:51.851385+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.851 [INFO] [docker:2181c947] 5f70bf18a086: Preparing","timestamp":"2026-08-24T13:55:51.851576+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.851 [INFO] [docker:2181c947] 71a2618c0925: Preparing","timestamp":"2026-08-24T13:55:51.851684+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.851 [INFO] [docker:2181c947] 6fc52eaf99f6: Preparing","timestamp":"2026-08-24T13:55:51.851796+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.851 [INFO] [docker:2181c947] cd4b3dc03178: Preparing","timestamp":"2026-08-24T13:55:51.851890+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.851 [INFO] [docker:2181c947] b4cfcb8385a8: Preparing","timestamp":"2026-08-24T13:55:51.851988+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] 2b730cf18c09: Preparing","timestamp":"2026-08-24T13:55:51.852079+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] edeaba958753: Preparing","timestamp":"2026-08-24T13:55:51.852174+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] 8bf42db0de72: Preparing","timestamp":"2026-08-24T13:55:51.852273+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] 31892cc314cb: Preparing","timestamp":"2026-08-24T13:55:51.852362+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] 11936051f93b: Preparing","timestamp":"2026-08-24T13:55:51.852449+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] 2b730cf18c09: Waiting","timestamp":"2026-08-24T13:55:51.852542+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] edeaba958753: Waiting","timestamp":"2026-08-24T13:55:51.852630+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] 8bf42db0de72: Waiting","timestamp":"2026-08-24T13:55:51.852717+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] 31892cc314cb: Waiting","timestamp":"2026-08-24T13:55:51.852813+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] 11936051f93b: Waiting","timestamp":"2026-08-24T13:55:51.852900+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:51.852 [INFO] [docker:2181c947] b4cfcb8385a8: Waiting","timestamp":"2026-08-24T13:55:51.852985+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:52.182 [INFO] [docker:2181c947] cd4b3dc03178: Layer already exists","timestamp":"2026-08-24T13:55:52.182273+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:52.291 [INFO] [docker:2181c947] 5f70bf18a086: Layer already exists","timestamp":"2026-08-24T13:55:52.291086+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:52.291 [INFO] [docker:2181c947] 71a2618c0925: Layer already exists","timestamp":"2026-08-24T13:55:52.291216+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:52.291 [INFO] [docker:2181c947] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-24T13:55:52.291303+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:52.313 [INFO] [docker:2181c947] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-24T13:55:52.313850+08:00"},{"seq":69,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:52.402 [INFO] [docker:2181c947] edeaba958753: Layer already exists","timestamp":"2026-08-24T13:55:52.402427+08:00"},{"seq":70,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:52.414 [INFO] [docker:2181c947] 8bf42db0de72: Layer already exists","timestamp":"2026-08-24T13:55:52.414863+08:00"},{"seq":71,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:52.414 [INFO] [docker:2181c947] 2b730cf18c09: Layer already exists","timestamp":"2026-08-24T13:55:52.414985+08:00"},{"seq":72,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:52.415 [INFO] [docker:2181c947] 31892cc314cb: Layer already exists","timestamp":"2026-08-24T13:55:52.415125+08:00"},{"seq":73,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:55:52.492 [INFO] [docker:2181c947] 11936051f93b: Layer already exists","timestamp":"2026-08-24T13:55:52.492452+08:00"},{"seq":74,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:05.848 [INFO] [docker:2181c947] fb483d1b9fd5: Pushed","timestamp":"2026-08-24T13:56:05.848153+08:00"},{"seq":75,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:06.607 [INFO] [docker:2181c947] develop-503e62e: digest: sha256:5598591f5691d8e13f6e2d4e7be18a9d6988495ea41272173ab7ae126234c88f size: 2629","timestamp":"2026-08-24T13:56:06.607856+08:00"},{"seq":76,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:06.693 [INFO] [docker:2181c947] The push refers to repository [docker.fanson.cloud/fanson/fscp-system]","timestamp":"2026-08-24T13:56:06.693643+08:00"},{"seq":77,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:06.727 [INFO] [docker:2181c947] tag does not exist: docker.fanson.cloud/fanson/fscp-system:cache","timestamp":"2026-08-24T13:56:06.727656+08:00"},{"seq":78,"level":"ERROR","component":"docker","message":"[docker] 2026-08-24 13:56:06.728 [ERROR] [docker:2181c947] 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-24T13:56:06.728519+08:00"},{"seq":79,"level":"WARNING","component":"docker","message":"[docker] 2026-08-24 13:56:06.728 [WARNING] [docker:2181c947] 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-24T13:56:06.728862+08:00"},{"seq":80,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:56:06.728 [INFO] [orchestrator:2181c947] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-system:develop-503e62e","timestamp":"2026-08-24T13:56:06.729002+08:00"},{"seq":81,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:56:06.732 [INFO] [orchestrator:2181c947] 🔨 构建服务: fanson/fscp-billing → 镜像标签 fanson/fscp-billing:develop-503e62e","timestamp":"2026-08-24T13:56:06.732337+08:00"},{"seq":82,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:56:06.732 [INFO] [orchestrator:2181c947] 已自动注入 -pl fscp-modules/fscp-billing -am: mvn -pl fscp-modules/fscp-billing -am clean package -DskipTests","timestamp":"2026-08-24T13:56:06.732444+08:00"},{"seq":83,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:06.732 [INFO] [docker:2181c947] building docker.fanson.cloud/fanson/fscp-billing:develop-503e62e (skipping buildx — already known to fail)","timestamp":"2026-08-24T13:56:06.732823+08:00"},{"seq":84,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:07.177 [INFO] [docker:2181c947] #1 DONE 0.2s","timestamp":"2026-08-24T13:56:07.177626+08:00"},{"seq":85,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:07.863 [INFO] [docker:2181c947] #3 DONE 0.7s","timestamp":"2026-08-24T13:56:07.863121+08:00"},{"seq":86,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:08.051 [INFO] [docker:2181c947] #2 DONE 0.8s","timestamp":"2026-08-24T13:56:08.051043+08:00"},{"seq":87,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:08.272 [INFO] [docker:2181c947] #4 DONE 0.2s","timestamp":"2026-08-24T13:56:08.272062+08:00"},{"seq":88,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:08.404 [INFO] [docker:2181c947] #5 DONE 0.0s","timestamp":"2026-08-24T13:56:08.404810+08:00"},{"seq":89,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:08.404 [INFO] [docker:2181c947] #6 DONE 0.0s","timestamp":"2026-08-24T13:56:08.404952+08:00"},{"seq":90,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:08.614 [INFO] [docker:2181c947] #7 DONE 0.3s","timestamp":"2026-08-24T13:56:08.614939+08:00"},{"seq":91,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:08.822 [INFO] [docker:2181c947] #8 CACHED","timestamp":"2026-08-24T13:56:08.822007+08:00"},{"seq":92,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:08.822 [INFO] [docker:2181c947] #9 CACHED","timestamp":"2026-08-24T13:56:08.822121+08:00"},{"seq":93,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:08.822 [INFO] [docker:2181c947] #10 CACHED","timestamp":"2026-08-24T13:56:08.822218+08:00"},{"seq":94,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:08.822 [INFO] [docker:2181c947] #11 CACHED","timestamp":"2026-08-24T13:56:08.822310+08:00"},{"seq":95,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:10.472 [INFO] [docker:2181c947] #12 DONE 1.8s","timestamp":"2026-08-24T13:56:10.472522+08:00"},{"seq":96,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:25.742 [INFO] [docker:2181c947] #13 DONE 15.2s","timestamp":"2026-08-24T13:56:25.742565+08:00"},{"seq":97,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:26.618 [INFO] [docker:2181c947] #14 CACHED","timestamp":"2026-08-24T13:56:26.618297+08:00"},{"seq":98,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:29.369 [INFO] [docker:2181c947] #15 DONE 2.8s","timestamp":"2026-08-24T13:56:29.369423+08:00"},{"seq":99,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:30.564 [INFO] [docker:2181c947] #16 DONE 1.1s","timestamp":"2026-08-24T13:56:30.564181+08:00"},{"seq":100,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.904 [INFO] [docker:2181c947] build success: docker.fanson.cloud/fanson/fscp-billing:develop-503e62e","timestamp":"2026-08-24T13:56:31.904794+08:00"},{"seq":101,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.904 [INFO] [docker:2181c947] pushing docker.fanson.cloud/fanson/fscp-billing:develop-503e62e","timestamp":"2026-08-24T13:56:31.904896+08:00"},{"seq":102,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.941 [INFO] [docker:2181c947] The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]","timestamp":"2026-08-24T13:56:31.941512+08:00"},{"seq":103,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.976 [INFO] [docker:2181c947] 8e7a411be293: Preparing","timestamp":"2026-08-24T13:56:31.976415+08:00"},{"seq":104,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.976 [INFO] [docker:2181c947] 5f70bf18a086: Preparing","timestamp":"2026-08-24T13:56:31.976540+08:00"},{"seq":105,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.976 [INFO] [docker:2181c947] 71a2618c0925: Preparing","timestamp":"2026-08-24T13:56:31.976630+08:00"},{"seq":106,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.976 [INFO] [docker:2181c947] 6fc52eaf99f6: Preparing","timestamp":"2026-08-24T13:56:31.976714+08:00"},{"seq":107,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.976 [INFO] [docker:2181c947] cd4b3dc03178: Preparing","timestamp":"2026-08-24T13:56:31.976804+08:00"},{"seq":108,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.976 [INFO] [docker:2181c947] b4cfcb8385a8: Preparing","timestamp":"2026-08-24T13:56:31.976884+08:00"},{"seq":109,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.976 [INFO] [docker:2181c947] 2b730cf18c09: Preparing","timestamp":"2026-08-24T13:56:31.976962+08:00"},{"seq":110,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.977 [INFO] [docker:2181c947] edeaba958753: Preparing","timestamp":"2026-08-24T13:56:31.977040+08:00"},{"seq":111,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.977 [INFO] [docker:2181c947] 8bf42db0de72: Preparing","timestamp":"2026-08-24T13:56:31.977117+08:00"},{"seq":112,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.977 [INFO] [docker:2181c947] 31892cc314cb: Preparing","timestamp":"2026-08-24T13:56:31.977195+08:00"},{"seq":113,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.977 [INFO] [docker:2181c947] 11936051f93b: Preparing","timestamp":"2026-08-24T13:56:31.977273+08:00"},{"seq":114,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.977 [INFO] [docker:2181c947] b4cfcb8385a8: Waiting","timestamp":"2026-08-24T13:56:31.977350+08:00"},{"seq":115,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.977 [INFO] [docker:2181c947] 8bf42db0de72: Waiting","timestamp":"2026-08-24T13:56:31.977427+08:00"},{"seq":116,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.977 [INFO] [docker:2181c947] 31892cc314cb: Waiting","timestamp":"2026-08-24T13:56:31.977503+08:00"},{"seq":117,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.977 [INFO] [docker:2181c947] 2b730cf18c09: Waiting","timestamp":"2026-08-24T13:56:31.977578+08:00"},{"seq":118,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.977 [INFO] [docker:2181c947] 11936051f93b: Waiting","timestamp":"2026-08-24T13:56:31.977655+08:00"},{"seq":119,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:31.977 [INFO] [docker:2181c947] edeaba958753: Waiting","timestamp":"2026-08-24T13:56:31.977735+08:00"},{"seq":120,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:32.264 [INFO] [docker:2181c947] cd4b3dc03178: Layer already exists","timestamp":"2026-08-24T13:56:32.264868+08:00"},{"seq":121,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:32.330 [INFO] [docker:2181c947] 5f70bf18a086: Layer already exists","timestamp":"2026-08-24T13:56:32.330371+08:00"},{"seq":122,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:32.330 [INFO] [docker:2181c947] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-24T13:56:32.330677+08:00"},{"seq":123,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:32.331 [INFO] [docker:2181c947] 71a2618c0925: Layer already exists","timestamp":"2026-08-24T13:56:32.331004+08:00"},{"seq":124,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:32.368 [INFO] [docker:2181c947] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-24T13:56:32.368226+08:00"},{"seq":125,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:32.497 [INFO] [docker:2181c947] 8bf42db0de72: Layer already exists","timestamp":"2026-08-24T13:56:32.497190+08:00"},{"seq":126,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:32.527 [INFO] [docker:2181c947] 2b730cf18c09: Layer already exists","timestamp":"2026-08-24T13:56:32.527417+08:00"},{"seq":127,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:32.530 [INFO] [docker:2181c947] edeaba958753: Layer already exists","timestamp":"2026-08-24T13:56:32.530324+08:00"},{"seq":128,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:32.530 [INFO] [docker:2181c947] 31892cc314cb: Layer already exists","timestamp":"2026-08-24T13:56:32.530425+08:00"},{"seq":129,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:32.596 [INFO] [docker:2181c947] 11936051f93b: Layer already exists","timestamp":"2026-08-24T13:56:32.596659+08:00"},{"seq":130,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:43.797 [INFO] [docker:2181c947] 8e7a411be293: Pushed","timestamp":"2026-08-24T13:56:43.797678+08:00"},{"seq":131,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:44.556 [INFO] [docker:2181c947] develop-503e62e: digest: sha256:2efe364950c6d01e47a3aba706bb1a520aafaf6947553503f2d8dd67e6fc823d size: 2629","timestamp":"2026-08-24T13:56:44.556077+08:00"},{"seq":132,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:44.647 [INFO] [docker:2181c947] The push refers to repository [docker.fanson.cloud/fanson/fscp-billing]","timestamp":"2026-08-24T13:56:44.647707+08:00"},{"seq":133,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:44.680 [INFO] [docker:2181c947] tag does not exist: docker.fanson.cloud/fanson/fscp-billing:cache","timestamp":"2026-08-24T13:56:44.680794+08:00"},{"seq":134,"level":"ERROR","component":"docker","message":"[docker] 2026-08-24 13:56:44.681 [ERROR] [docker:2181c947] 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-24T13:56:44.681613+08:00"},{"seq":135,"level":"WARNING","component":"docker","message":"[docker] 2026-08-24 13:56:44.681 [WARNING] [docker:2181c947] 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-24T13:56:44.681951+08:00"},{"seq":136,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:56:44.682 [INFO] [orchestrator:2181c947] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-billing:develop-503e62e","timestamp":"2026-08-24T13:56:44.682110+08:00"},{"seq":137,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:56:44.685 [INFO] [orchestrator:2181c947] 🔨 构建服务: fanson/fscp-tenant → 镜像标签 fanson/fscp-tenant:develop-503e62e","timestamp":"2026-08-24T13:56:44.685292+08:00"},{"seq":138,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:56:44.685 [INFO] [orchestrator:2181c947] 已自动注入 -pl fscp-modules/fscp-tenant -am: mvn -pl fscp-modules/fscp-tenant -am clean package -DskipTests","timestamp":"2026-08-24T13:56:44.685417+08:00"},{"seq":139,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:44.685 [INFO] [docker:2181c947] building docker.fanson.cloud/fanson/fscp-tenant:develop-503e62e (skipping buildx — already known to fail)","timestamp":"2026-08-24T13:56:44.685801+08:00"},{"seq":140,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:45.136 [INFO] [docker:2181c947] #1 DONE 0.2s","timestamp":"2026-08-24T13:56:45.136938+08:00"},{"seq":141,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:45.524 [INFO] [docker:2181c947] #3 DONE 0.3s","timestamp":"2026-08-24T13:56:45.524062+08:00"},{"seq":142,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:46.364 [INFO] [docker:2181c947] #2 DONE 1.2s","timestamp":"2026-08-24T13:56:46.364537+08:00"},{"seq":143,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:46.574 [INFO] [docker:2181c947] #4 DONE 0.2s","timestamp":"2026-08-24T13:56:46.574281+08:00"},{"seq":144,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:46.674 [INFO] [docker:2181c947] #5 DONE 0.0s","timestamp":"2026-08-24T13:56:46.674440+08:00"},{"seq":145,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:46.674 [INFO] [docker:2181c947] #6 DONE 0.0s","timestamp":"2026-08-24T13:56:46.674588+08:00"},{"seq":146,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:46.861 [INFO] [docker:2181c947] #7 DONE 0.2s","timestamp":"2026-08-24T13:56:46.861954+08:00"},{"seq":147,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:47.068 [INFO] [docker:2181c947] #8 CACHED","timestamp":"2026-08-24T13:56:47.068752+08:00"},{"seq":148,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:47.068 [INFO] [docker:2181c947] #9 CACHED","timestamp":"2026-08-24T13:56:47.068870+08:00"},{"seq":149,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:47.068 [INFO] [docker:2181c947] #10 CACHED","timestamp":"2026-08-24T13:56:47.068968+08:00"},{"seq":150,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:47.069 [INFO] [docker:2181c947] #11 CACHED","timestamp":"2026-08-24T13:56:47.069062+08:00"},{"seq":151,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:56:48.686 [INFO] [docker:2181c947] #12 DONE 1.8s","timestamp":"2026-08-24T13:56:48.686461+08:00"},{"seq":152,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:03.381 [INFO] [docker:2181c947] #13 DONE 14.7s","timestamp":"2026-08-24T13:57:03.381447+08:00"},{"seq":153,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:03.726 [INFO] [docker:2181c947] #14 CACHED","timestamp":"2026-08-24T13:57:03.726210+08:00"},{"seq":154,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:05.692 [INFO] [docker:2181c947] #15 DONE 2.0s","timestamp":"2026-08-24T13:57:05.692399+08:00"},{"seq":155,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:06.853 [INFO] [docker:2181c947] #16 DONE 1.1s","timestamp":"2026-08-24T13:57:06.853475+08:00"},{"seq":156,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:07.973 [INFO] [docker:2181c947] build success: docker.fanson.cloud/fanson/fscp-tenant:develop-503e62e","timestamp":"2026-08-24T13:57:07.973839+08:00"},{"seq":157,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:07.973 [INFO] [docker:2181c947] pushing docker.fanson.cloud/fanson/fscp-tenant:develop-503e62e","timestamp":"2026-08-24T13:57:07.973945+08:00"},{"seq":158,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.011 [INFO] [docker:2181c947] The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]","timestamp":"2026-08-24T13:57:08.011375+08:00"},{"seq":159,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.067 [INFO] [docker:2181c947] a4e3b3b171e8: Preparing","timestamp":"2026-08-24T13:57:08.067266+08:00"},{"seq":160,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.067 [INFO] [docker:2181c947] 5f70bf18a086: Preparing","timestamp":"2026-08-24T13:57:08.067373+08:00"},{"seq":161,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.067 [INFO] [docker:2181c947] 71a2618c0925: Preparing","timestamp":"2026-08-24T13:57:08.067460+08:00"},{"seq":162,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.067 [INFO] [docker:2181c947] 6fc52eaf99f6: Preparing","timestamp":"2026-08-24T13:57:08.067543+08:00"},{"seq":163,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.067 [INFO] [docker:2181c947] cd4b3dc03178: Preparing","timestamp":"2026-08-24T13:57:08.067624+08:00"},{"seq":164,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.067 [INFO] [docker:2181c947] b4cfcb8385a8: Preparing","timestamp":"2026-08-24T13:57:08.067704+08:00"},{"seq":165,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.067 [INFO] [docker:2181c947] 2b730cf18c09: Preparing","timestamp":"2026-08-24T13:57:08.067795+08:00"},{"seq":166,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.067 [INFO] [docker:2181c947] edeaba958753: Preparing","timestamp":"2026-08-24T13:57:08.067875+08:00"},{"seq":167,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.067 [INFO] [docker:2181c947] 8bf42db0de72: Preparing","timestamp":"2026-08-24T13:57:08.067954+08:00"},{"seq":168,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.068 [INFO] [docker:2181c947] 31892cc314cb: Preparing","timestamp":"2026-08-24T13:57:08.068033+08:00"},{"seq":169,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.068 [INFO] [docker:2181c947] 11936051f93b: Preparing","timestamp":"2026-08-24T13:57:08.068110+08:00"},{"seq":170,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.068 [INFO] [docker:2181c947] b4cfcb8385a8: Waiting","timestamp":"2026-08-24T13:57:08.068187+08:00"},{"seq":171,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.068 [INFO] [docker:2181c947] 2b730cf18c09: Waiting","timestamp":"2026-08-24T13:57:08.068264+08:00"},{"seq":172,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.068 [INFO] [docker:2181c947] 31892cc314cb: Waiting","timestamp":"2026-08-24T13:57:08.068340+08:00"},{"seq":173,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.068 [INFO] [docker:2181c947] 11936051f93b: Waiting","timestamp":"2026-08-24T13:57:08.068416+08:00"},{"seq":174,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.068 [INFO] [docker:2181c947] edeaba958753: Waiting","timestamp":"2026-08-24T13:57:08.068493+08:00"},{"seq":175,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.068 [INFO] [docker:2181c947] 8bf42db0de72: Waiting","timestamp":"2026-08-24T13:57:08.068569+08:00"},{"seq":176,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.425 [INFO] [docker:2181c947] 6fc52eaf99f6: Layer already exists","timestamp":"2026-08-24T13:57:08.425777+08:00"},{"seq":177,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.426 [INFO] [docker:2181c947] 5f70bf18a086: Layer already exists","timestamp":"2026-08-24T13:57:08.426194+08:00"},{"seq":178,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.426 [INFO] [docker:2181c947] cd4b3dc03178: Layer already exists","timestamp":"2026-08-24T13:57:08.426311+08:00"},{"seq":179,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.426 [INFO] [docker:2181c947] 71a2618c0925: Layer already exists","timestamp":"2026-08-24T13:57:08.426810+08:00"},{"seq":180,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.510 [INFO] [docker:2181c947] 2b730cf18c09: Layer already exists","timestamp":"2026-08-24T13:57:08.510969+08:00"},{"seq":181,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.584 [INFO] [docker:2181c947] edeaba958753: Layer already exists","timestamp":"2026-08-24T13:57:08.584207+08:00"},{"seq":182,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.584 [INFO] [docker:2181c947] 8bf42db0de72: Layer already exists","timestamp":"2026-08-24T13:57:08.584329+08:00"},{"seq":183,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.584 [INFO] [docker:2181c947] b4cfcb8385a8: Layer already exists","timestamp":"2026-08-24T13:57:08.584448+08:00"},{"seq":184,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.633 [INFO] [docker:2181c947] 31892cc314cb: Layer already exists","timestamp":"2026-08-24T13:57:08.633972+08:00"},{"seq":185,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:08.644 [INFO] [docker:2181c947] 11936051f93b: Layer already exists","timestamp":"2026-08-24T13:57:08.644387+08:00"},{"seq":186,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:15.322 [INFO] [docker:2181c947] a4e3b3b171e8: Pushed","timestamp":"2026-08-24T13:57:15.322278+08:00"},{"seq":187,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:16.070 [INFO] [docker:2181c947] develop-503e62e: digest: sha256:0d8c94a9ed6a980ff4d50c49e7eab399cb1cd902191a0fb89df0717c84ffe55b size: 2628","timestamp":"2026-08-24T13:57:16.070212+08:00"},{"seq":188,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:16.161 [INFO] [docker:2181c947] The push refers to repository [docker.fanson.cloud/fanson/fscp-tenant]","timestamp":"2026-08-24T13:57:16.161532+08:00"},{"seq":189,"level":"INFO","component":"docker","message":"[docker] 2026-08-24 13:57:16.196 [INFO] [docker:2181c947] tag does not exist: docker.fanson.cloud/fanson/fscp-tenant:cache","timestamp":"2026-08-24T13:57:16.196481+08:00"},{"seq":190,"level":"ERROR","component":"docker","message":"[docker] 2026-08-24 13:57:16.197 [ERROR] [docker:2181c947] 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-24T13:57:16.197702+08:00"},{"seq":191,"level":"WARNING","component":"docker","message":"[docker] 2026-08-24 13:57:16.197 [WARNING] [docker:2181c947] 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-24T13:57:16.197957+08:00"},{"seq":192,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-08-24 13:57:16.198 [INFO] [orchestrator:2181c947] ✅ 服务构建完成: docker.fanson.cloud/fanson/fscp-tenant:develop-503e62e","timestamp":"2026-08-24T13:57:16.198048+08:00"},{"seq":193,"level":"INFO","component":"agent","message":"[agent] 2026-08-24 13:57:16.201 [INFO] [agent:2181c947] ✅ 构建完成: 成功构建 5 个镜像: docker.fanson.cloud/fanson/fscp-gateway:develop-df7c7da, docker.fanson.cloud/fanson/fscp-auth:develop-6db0579, docker.fanson.cloud/fanson/fscp-system:develop-503e62e, docker.fanson.cloud/fanson/fscp-billing:develop-503e62e, docker.fanson.cloud/fanson/fscp-tenant:develop-503e62e","timestamp":"2026-08-24T13:57:16.201716+08:00"},{"seq":194,"level":"INFO","component":"agent","message":"[agent] 2026-08-24 13:57:16.239 [INFO] [agent:2181c947] workspace cleaned","timestamp":"2026-08-24T13:57:16.239443+08:00"}]}