{"job_id":"8089a1ae-b70c-4c92-b5a8-81da1b1f4c84","filters":{"level":null,"component":null},"total":73,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 19:20:31.897 [INFO] [agent:8089a1ae] 🚀 CI 流水线启动","timestamp":"2026-10-12T19:20:31.897250+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-10-12 19:20:31.897 [INFO] [git:8089a1ae] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/8089a1ae-b70c-4c92-b5a8-81da1b1f4c84 (branch=main)","timestamp":"2026-10-12T19:20:31.897578+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-10-12 19:20:32.493 [INFO] [git:8089a1ae] Cloning into '/app/data/workspace/8089a1ae-b70c-4c92-b5a8-81da1b1f4c84'...","timestamp":"2026-10-12T19:20:32.493961+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-10-12 19:20:32.494 [INFO] [git:8089a1ae] git clone success: /app/data/workspace/8089a1ae-b70c-4c92-b5a8-81da1b1f4c84","timestamp":"2026-10-12T19:20:32.494068+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 19:20:32.494 [INFO] [agent:8089a1ae] 📦 代码已克隆到 /app/data/workspace/8089a1ae-b70c-4c92-b5a8-81da1b1f4c84","timestamp":"2026-10-12T19:20:32.494356+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:20:32.495 [INFO] [orchestrator:8089a1ae] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-10-12T19:20:32.495276+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:20:33.004 [INFO] [orchestrator:8089a1ae] 📝 检测到变更的目录: \"docs, \"docs/meet-pilot-, src, src/main","timestamp":"2026-10-12T19:20:33.004449+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:20:33.865 [INFO] [orchestrator:8089a1ae] 📝 单服务项目，开始构建（代码指纹 07cadea9）","timestamp":"2026-10-12T19:20:33.865339+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:20:33.865 [INFO] [orchestrator:8089a1ae] 🔨 开始构建 1 个服务","timestamp":"2026-10-12T19:20:33.865461+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:20:33.869 [INFO] [orchestrator:8089a1ae] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-07cadea9","timestamp":"2026-10-12T19:20:33.869567+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:33.870 [INFO] [docker:8089a1ae] building docker.fanson.cloud/fanson/meet-pilot:main-07cadea9 (with cache)","timestamp":"2026-10-12T19:20:33.870051+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:34.157 [INFO] [docker:8089a1ae] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-10-12T19:20:34.157894+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:34.158 [INFO] [docker:8089a1ae] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-10-12T19:20:34.158033+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:34.158 [INFO] [docker:8089a1ae] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-10-12T19:20:34.158127+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-10-12 19:20:34.160 [ERROR] [docker:8089a1ae] 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:20:34.160157+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-10-12 19:20:34.160 [WARNING] [docker:8089a1ae] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-10-12T19:20:34.160491+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:34.160 [INFO] [docker:8089a1ae] building docker.fanson.cloud/fanson/meet-pilot:main-07cadea9 (native docker build)","timestamp":"2026-10-12T19:20:34.160601+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:34.857 [INFO] [docker:8089a1ae] #1 DONE 0.4s","timestamp":"2026-10-12T19:20:34.857932+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:35.146 [INFO] [docker:8089a1ae] #2 DONE 0.0s","timestamp":"2026-10-12T19:20:35.146415+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:35.422 [INFO] [docker:8089a1ae] #4 DONE 0.5s","timestamp":"2026-10-12T19:20:35.422296+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:36.163 [INFO] [docker:8089a1ae] #3 DONE 1.3s","timestamp":"2026-10-12T19:20:36.163055+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:36.682 [INFO] [docker:8089a1ae] #5 DONE 0.5s","timestamp":"2026-10-12T19:20:36.682383+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:36.869 [INFO] [docker:8089a1ae] #6 DONE 0.0s","timestamp":"2026-10-12T19:20:36.869453+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:36.869 [INFO] [docker:8089a1ae] #7 DONE 0.0s","timestamp":"2026-10-12T19:20:36.869583+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:37.301 [INFO] [docker:8089a1ae] #8 DONE 0.6s","timestamp":"2026-10-12T19:20:37.301773+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:37.530 [INFO] [docker:8089a1ae] #9 CACHED","timestamp":"2026-10-12T19:20:37.530806+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:37.530 [INFO] [docker:8089a1ae] #10 CACHED","timestamp":"2026-10-12T19:20:37.530936+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:37.531 [INFO] [docker:8089a1ae] #11 CACHED","timestamp":"2026-10-12T19:20:37.531043+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:37.531 [INFO] [docker:8089a1ae] #12 CACHED","timestamp":"2026-10-12T19:20:37.531141+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:38.706 [INFO] [docker:8089a1ae] #13 DONE 1.3s","timestamp":"2026-10-12T19:20:38.706116+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:46.888 [INFO] [docker:8089a1ae] #14 DONE 8.1s","timestamp":"2026-10-12T19:20:46.888408+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:47.227 [INFO] [docker:8089a1ae] #15 CACHED","timestamp":"2026-10-12T19:20:47.227829+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:48.657 [INFO] [docker:8089a1ae] #16 DONE 1.4s","timestamp":"2026-10-12T19:20:48.657593+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:50.305 [INFO] [docker:8089a1ae] #17 DONE 1.6s","timestamp":"2026-10-12T19:20:50.305120+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.381 [INFO] [docker:8089a1ae] build success: docker.fanson.cloud/fanson/meet-pilot:main-07cadea9","timestamp":"2026-10-12T19:20:51.381683+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.381 [INFO] [docker:8089a1ae] pushing docker.fanson.cloud/fanson/meet-pilot:main-07cadea9","timestamp":"2026-10-12T19:20:51.381801+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.419 [INFO] [docker:8089a1ae] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-12T19:20:51.419748+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.454 [INFO] [docker:8089a1ae] 8acdc76cdab1: Preparing","timestamp":"2026-10-12T19:20:51.454505+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.454 [INFO] [docker:8089a1ae] 5f70bf18a086: Preparing","timestamp":"2026-10-12T19:20:51.454639+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.454 [INFO] [docker:8089a1ae] 71a2618c0925: Preparing","timestamp":"2026-10-12T19:20:51.454756+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.454 [INFO] [docker:8089a1ae] 6fc52eaf99f6: Preparing","timestamp":"2026-10-12T19:20:51.454856+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.454 [INFO] [docker:8089a1ae] cd4b3dc03178: Preparing","timestamp":"2026-10-12T19:20:51.454957+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] b4cfcb8385a8: Preparing","timestamp":"2026-10-12T19:20:51.455050+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] 2b730cf18c09: Preparing","timestamp":"2026-10-12T19:20:51.455148+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] edeaba958753: Preparing","timestamp":"2026-10-12T19:20:51.455241+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] 8bf42db0de72: Preparing","timestamp":"2026-10-12T19:20:51.455337+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] 31892cc314cb: Preparing","timestamp":"2026-10-12T19:20:51.455428+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] 11936051f93b: Preparing","timestamp":"2026-10-12T19:20:51.455524+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] b4cfcb8385a8: Waiting","timestamp":"2026-10-12T19:20:51.455616+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] 2b730cf18c09: Waiting","timestamp":"2026-10-12T19:20:51.455719+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] 31892cc314cb: Waiting","timestamp":"2026-10-12T19:20:51.455811+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] edeaba958753: Waiting","timestamp":"2026-10-12T19:20:51.455906+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.455 [INFO] [docker:8089a1ae] 8bf42db0de72: Waiting","timestamp":"2026-10-12T19:20:51.455994+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.456 [INFO] [docker:8089a1ae] 11936051f93b: Waiting","timestamp":"2026-10-12T19:20:51.456086+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.821 [INFO] [docker:8089a1ae] 5f70bf18a086: Layer already exists","timestamp":"2026-10-12T19:20:51.821508+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.832 [INFO] [docker:8089a1ae] 6fc52eaf99f6: Layer already exists","timestamp":"2026-10-12T19:20:51.832945+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.833 [INFO] [docker:8089a1ae] 71a2618c0925: Layer already exists","timestamp":"2026-10-12T19:20:51.833544+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.834 [INFO] [docker:8089a1ae] cd4b3dc03178: Layer already exists","timestamp":"2026-10-12T19:20:51.834007+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.931 [INFO] [docker:8089a1ae] 8bf42db0de72: Layer already exists","timestamp":"2026-10-12T19:20:51.931341+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.943 [INFO] [docker:8089a1ae] b4cfcb8385a8: Layer already exists","timestamp":"2026-10-12T19:20:51.943006+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.943 [INFO] [docker:8089a1ae] edeaba958753: Layer already exists","timestamp":"2026-10-12T19:20:51.943271+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:51.943 [INFO] [docker:8089a1ae] 2b730cf18c09: Layer already exists","timestamp":"2026-10-12T19:20:51.943419+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:52.009 [INFO] [docker:8089a1ae] 11936051f93b: Layer already exists","timestamp":"2026-10-12T19:20:52.009820+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:52.075 [INFO] [docker:8089a1ae] 31892cc314cb: Layer already exists","timestamp":"2026-10-12T19:20:52.075106+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:55.624 [INFO] [docker:8089a1ae] 8acdc76cdab1: Pushed","timestamp":"2026-10-12T19:20:55.624649+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:56.384 [INFO] [docker:8089a1ae] main-07cadea9: digest: sha256:c3c0d35a2731db1bf0c44f783671036b00c01846027fb16f6e1eb2258b741da4 size: 2628","timestamp":"2026-10-12T19:20:56.384417+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:56.477 [INFO] [docker:8089a1ae] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-12T19:20:56.477732+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 19:20:56.512 [INFO] [docker:8089a1ae] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-12T19:20:56.512092+08:00"},{"seq":69,"level":"ERROR","component":"docker","message":"[docker] 2026-10-12 19:20:56.513 [ERROR] [docker:8089a1ae] 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:20:56.513109+08:00"},{"seq":70,"level":"WARNING","component":"docker","message":"[docker] 2026-10-12 19:20:56.513 [WARNING] [docker:8089a1ae] 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:20:56.513354+08:00"},{"seq":71,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 19:20:56.513 [INFO] [orchestrator:8089a1ae] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-07cadea9","timestamp":"2026-10-12T19:20:56.513467+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 19:20:56.516 [INFO] [agent:8089a1ae] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-07cadea9","timestamp":"2026-10-12T19:20:56.516628+08:00"},{"seq":73,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 19:20:56.524 [INFO] [agent:8089a1ae] workspace cleaned","timestamp":"2026-10-12T19:20:56.524546+08:00"}]}