{"job_id":"e75b19d7-2bba-4e5a-bb6c-78c16591d560","filters":{"level":null,"component":null},"total":72,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 19:31:53.078 [INFO] [agent:e75b19d7] 🚀 CI 流水线启动","timestamp":"2026-10-12T19:31:53.078102+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-10-12 19:31:53.078 [INFO] [git:e75b19d7] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/e75b19d7-2bba-4e5a-bb6c-78c16591d560 (branch=main)","timestamp":"2026-10-12T19:31:53.078443+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-10-12 19:31:53.757 [INFO] [git:e75b19d7] Cloning into '/app/data/workspace/e75b19d7-2bba-4e5a-bb6c-78c16591d560'...","timestamp":"2026-10-12T19:31:53.757649+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-10-12 19:31:53.757 [INFO] [git:e75b19d7] git clone success: /app/data/workspace/e75b19d7-2bba-4e5a-bb6c-78c16591d560","timestamp":"2026-10-12T19:31:53.757772+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 19:31:53.758 [INFO] [agent:e75b19d7] 📦 代码已克隆到 /app/data/workspace/e75b19d7-2bba-4e5a-bb6c-78c16591d560","timestamp":"2026-10-12T19:31:53.758042+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:31:53.758 [INFO] [orchestrator:e75b19d7] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-10-12T19:31:53.758987+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:31:54.210 [INFO] [orchestrator:e75b19d7] 📝 检测到变更的目录: src, src/main","timestamp":"2026-10-12T19:31:54.210261+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:31:54.843 [INFO] [orchestrator:e75b19d7] 📝 单服务项目，开始构建（代码指纹 09c36b1b）","timestamp":"2026-10-12T19:31:54.843903+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:31:54.844 [INFO] [orchestrator:e75b19d7] 🔨 开始构建 1 个服务","timestamp":"2026-10-12T19:31:54.844029+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:31:54.848 [INFO] [orchestrator:e75b19d7] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-09c36b1b","timestamp":"2026-10-12T19:31:54.848415+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:54.848 [INFO] [docker:e75b19d7] building docker.fanson.cloud/fanson/meet-pilot:main-09c36b1b (with cache)","timestamp":"2026-10-12T19:31:54.848922+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:55.174 [INFO] [docker:e75b19d7] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-10-12T19:31:55.174400+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:55.174 [INFO] [docker:e75b19d7] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-10-12T19:31:55.174537+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:55.174 [INFO] [docker:e75b19d7] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-10-12T19:31:55.174632+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-10-12 19:31:55.177 [ERROR] [docker:e75b19d7] 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-10-12T19:31:55.177061+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-10-12 19:31:55.177 [WARNING] [docker:e75b19d7] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-10-12T19:31:55.177496+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:55.177 [INFO] [docker:e75b19d7] building docker.fanson.cloud/fanson/meet-pilot:main-09c36b1b (native docker build)","timestamp":"2026-10-12T19:31:55.177611+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:55.951 [INFO] [docker:e75b19d7] #1 DONE 0.5s","timestamp":"2026-10-12T19:31:55.951502+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:56.416 [INFO] [docker:e75b19d7] #3 DONE 0.4s","timestamp":"2026-10-12T19:31:56.416155+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:57.466 [INFO] [docker:e75b19d7] #2 DONE 1.5s","timestamp":"2026-10-12T19:31:57.466440+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:58.008 [INFO] [docker:e75b19d7] #4 DONE 0.5s","timestamp":"2026-10-12T19:31:58.008084+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:58.239 [INFO] [docker:e75b19d7] #5 DONE 0.0s","timestamp":"2026-10-12T19:31:58.239378+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:58.239 [INFO] [docker:e75b19d7] #6 DONE 0.0s","timestamp":"2026-10-12T19:31:58.239501+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:58.704 [INFO] [docker:e75b19d7] #7 DONE 0.6s","timestamp":"2026-10-12T19:31:58.704749+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:58.911 [INFO] [docker:e75b19d7] #8 CACHED","timestamp":"2026-10-12T19:31:58.911716+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:58.911 [INFO] [docker:e75b19d7] #9 CACHED","timestamp":"2026-10-12T19:31:58.911841+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:58.911 [INFO] [docker:e75b19d7] #10 CACHED","timestamp":"2026-10-12T19:31:58.911945+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:31:58.912 [INFO] [docker:e75b19d7] #11 CACHED","timestamp":"2026-10-12T19:31:58.912044+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:00.064 [INFO] [docker:e75b19d7] #12 DONE 1.3s","timestamp":"2026-10-12T19:32:00.064808+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:08.359 [INFO] [docker:e75b19d7] #13 DONE 8.2s","timestamp":"2026-10-12T19:32:08.359186+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:08.735 [INFO] [docker:e75b19d7] #14 CACHED","timestamp":"2026-10-12T19:32:08.735333+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:10.303 [INFO] [docker:e75b19d7] #15 DONE 1.6s","timestamp":"2026-10-12T19:32:10.303907+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:11.840 [INFO] [docker:e75b19d7] #16 DONE 1.5s","timestamp":"2026-10-12T19:32:11.840691+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.740 [INFO] [docker:e75b19d7] build success: docker.fanson.cloud/fanson/meet-pilot:main-09c36b1b","timestamp":"2026-10-12T19:32:12.740483+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.740 [INFO] [docker:e75b19d7] pushing docker.fanson.cloud/fanson/meet-pilot:main-09c36b1b","timestamp":"2026-10-12T19:32:12.740593+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.779 [INFO] [docker:e75b19d7] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-12T19:32:12.779958+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.814 [INFO] [docker:e75b19d7] 23eae784c1bb: Preparing","timestamp":"2026-10-12T19:32:12.814293+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.814 [INFO] [docker:e75b19d7] 5f70bf18a086: Preparing","timestamp":"2026-10-12T19:32:12.814420+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.814 [INFO] [docker:e75b19d7] 71a2618c0925: Preparing","timestamp":"2026-10-12T19:32:12.814509+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.814 [INFO] [docker:e75b19d7] 6fc52eaf99f6: Preparing","timestamp":"2026-10-12T19:32:12.814593+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.814 [INFO] [docker:e75b19d7] cd4b3dc03178: Preparing","timestamp":"2026-10-12T19:32:12.814676+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.814 [INFO] [docker:e75b19d7] b4cfcb8385a8: Preparing","timestamp":"2026-10-12T19:32:12.814768+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.814 [INFO] [docker:e75b19d7] 2b730cf18c09: Preparing","timestamp":"2026-10-12T19:32:12.814850+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.814 [INFO] [docker:e75b19d7] edeaba958753: Preparing","timestamp":"2026-10-12T19:32:12.814931+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.815 [INFO] [docker:e75b19d7] 8bf42db0de72: Preparing","timestamp":"2026-10-12T19:32:12.815010+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.815 [INFO] [docker:e75b19d7] 31892cc314cb: Preparing","timestamp":"2026-10-12T19:32:12.815090+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.815 [INFO] [docker:e75b19d7] 11936051f93b: Preparing","timestamp":"2026-10-12T19:32:12.815170+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.815 [INFO] [docker:e75b19d7] 2b730cf18c09: Waiting","timestamp":"2026-10-12T19:32:12.815249+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.815 [INFO] [docker:e75b19d7] edeaba958753: Waiting","timestamp":"2026-10-12T19:32:12.815328+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.815 [INFO] [docker:e75b19d7] 8bf42db0de72: Waiting","timestamp":"2026-10-12T19:32:12.815414+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.815 [INFO] [docker:e75b19d7] b4cfcb8385a8: Waiting","timestamp":"2026-10-12T19:32:12.815493+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.815 [INFO] [docker:e75b19d7] 31892cc314cb: Waiting","timestamp":"2026-10-12T19:32:12.815574+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:12.815 [INFO] [docker:e75b19d7] 11936051f93b: Waiting","timestamp":"2026-10-12T19:32:12.815653+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:13.126 [INFO] [docker:e75b19d7] 71a2618c0925: Layer already exists","timestamp":"2026-10-12T19:32:13.126963+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:13.180 [INFO] [docker:e75b19d7] cd4b3dc03178: Layer already exists","timestamp":"2026-10-12T19:32:13.180775+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:13.181 [INFO] [docker:e75b19d7] 5f70bf18a086: Layer already exists","timestamp":"2026-10-12T19:32:13.181274+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:13.182 [INFO] [docker:e75b19d7] 6fc52eaf99f6: Layer already exists","timestamp":"2026-10-12T19:32:13.182205+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:13.192 [INFO] [docker:e75b19d7] b4cfcb8385a8: Layer already exists","timestamp":"2026-10-12T19:32:13.192693+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:13.270 [INFO] [docker:e75b19d7] 31892cc314cb: Layer already exists","timestamp":"2026-10-12T19:32:13.270242+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:13.336 [INFO] [docker:e75b19d7] edeaba958753: Layer already exists","timestamp":"2026-10-12T19:32:13.336103+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:13.336 [INFO] [docker:e75b19d7] 2b730cf18c09: Layer already exists","timestamp":"2026-10-12T19:32:13.336234+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:13.336 [INFO] [docker:e75b19d7] 8bf42db0de72: Layer already exists","timestamp":"2026-10-12T19:32:13.336585+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:13.369 [INFO] [docker:e75b19d7] 11936051f93b: Layer already exists","timestamp":"2026-10-12T19:32:13.369892+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:17.062 [INFO] [docker:e75b19d7] 23eae784c1bb: Pushed","timestamp":"2026-10-12T19:32:17.062787+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:17.811 [INFO] [docker:e75b19d7] main-09c36b1b: digest: sha256:233d32bac6f262866d7e3730e1f8ffbbe940bdab87cfbeec3a6b98e5d8666403 size: 2628","timestamp":"2026-10-12T19:32:17.811584+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:17.910 [INFO] [docker:e75b19d7] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-12T19:32:17.910209+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:32:17.942 [INFO] [docker:e75b19d7] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-12T19:32:17.942083+08:00"},{"seq":68,"level":"ERROR","component":"docker","message":"[docker] 2026-10-12 19:32:17.942 [ERROR] [docker:e75b19d7] docker command failed (exit=1): The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]\ntag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-12T19:32:17.942818+08:00"},{"seq":69,"level":"WARNING","component":"docker","message":"[docker] 2026-10-12 19:32:17.943 [WARNING] [docker:e75b19d7] cache push skipped: The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]\ntag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-12T19:32:17.943168+08:00"},{"seq":70,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:32:17.943 [INFO] [orchestrator:e75b19d7] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-09c36b1b","timestamp":"2026-10-12T19:32:17.943325+08:00"},{"seq":71,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 19:32:17.999 [INFO] [agent:e75b19d7] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-09c36b1b","timestamp":"2026-10-12T19:32:17.999727+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 19:32:18.007 [INFO] [agent:e75b19d7] workspace cleaned","timestamp":"2026-10-12T19:32:18.007887+08:00"}]}