{"job_id":"010c9441-ae00-4121-addf-93217a98ce54","filters":{"level":null,"component":null},"total":73,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-10-10 17:51:03.996 [INFO] [agent:010c9441] 🚀 CI 流水线启动","timestamp":"2026-10-10T17:51:03.996082+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-10-10 17:51:03.996 [INFO] [git:010c9441] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/010c9441-ae00-4121-addf-93217a98ce54 (branch=main)","timestamp":"2026-10-10T17:51:03.996456+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-10-10 17:51:04.645 [INFO] [git:010c9441] Cloning into '/app/data/workspace/010c9441-ae00-4121-addf-93217a98ce54'...","timestamp":"2026-10-10T17:51:04.645553+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-10-10 17:51:04.645 [INFO] [git:010c9441] git clone success: /app/data/workspace/010c9441-ae00-4121-addf-93217a98ce54","timestamp":"2026-10-10T17:51:04.645662+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-10-10 17:51:04.646 [INFO] [agent:010c9441] 📦 代码已克隆到 /app/data/workspace/010c9441-ae00-4121-addf-93217a98ce54","timestamp":"2026-10-10T17:51:04.646030+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-10 17:51:04.647 [INFO] [orchestrator:010c9441] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-10-10T17:51:04.647006+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-10 17:51:05.094 [INFO] [orchestrator:010c9441] 📝 检测到变更的目录: \"docs, \"docs/meet-pilot-, src, src/main, src/test","timestamp":"2026-10-10T17:51:05.094848+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-10 17:51:10.797 [INFO] [orchestrator:010c9441] 📝 单服务项目，开始构建（代码指纹 e50ed127）","timestamp":"2026-10-10T17:51:10.797999+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-10 17:51:10.798 [INFO] [orchestrator:010c9441] 🔨 开始构建 1 个服务","timestamp":"2026-10-10T17:51:10.798126+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-10 17:51:10.802 [INFO] [orchestrator:010c9441] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-e50ed127","timestamp":"2026-10-10T17:51:10.802488+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:10.802 [INFO] [docker:010c9441] building docker.fanson.cloud/fanson/meet-pilot:main-e50ed127 (with cache)","timestamp":"2026-10-10T17:51:10.802979+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:11.090 [INFO] [docker:010c9441] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-10-10T17:51:11.090610+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:11.090 [INFO] [docker:010c9441] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-10-10T17:51:11.090749+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:11.090 [INFO] [docker:010c9441] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-10-10T17:51:11.090848+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-10-10 17:51:11.093 [ERROR] [docker:010c9441] 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-10T17:51:11.093217+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-10-10 17:51:11.093 [WARNING] [docker:010c9441] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-10-10T17:51:11.093656+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:11.093 [INFO] [docker:010c9441] building docker.fanson.cloud/fanson/meet-pilot:main-e50ed127 (native docker build)","timestamp":"2026-10-10T17:51:11.093790+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:11.889 [INFO] [docker:010c9441] #1 DONE 0.5s","timestamp":"2026-10-10T17:51:11.889071+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:12.231 [INFO] [docker:010c9441] #2 DONE 0.0s","timestamp":"2026-10-10T17:51:12.231346+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:12.718 [INFO] [docker:010c9441] #4 DONE 0.8s","timestamp":"2026-10-10T17:51:12.718616+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:12.917 [INFO] [docker:010c9441] #3 DONE 1.0s","timestamp":"2026-10-10T17:51:12.917605+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:13.525 [INFO] [docker:010c9441] #5 DONE 0.6s","timestamp":"2026-10-10T17:51:13.525620+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:13.745 [INFO] [docker:010c9441] #6 DONE 0.0s","timestamp":"2026-10-10T17:51:13.745727+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:13.745 [INFO] [docker:010c9441] #7 DONE 0.0s","timestamp":"2026-10-10T17:51:13.745847+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:14.233 [INFO] [docker:010c9441] #8 DONE 0.6s","timestamp":"2026-10-10T17:51:14.233302+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:14.451 [INFO] [docker:010c9441] #9 CACHED","timestamp":"2026-10-10T17:51:14.451372+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:14.451 [INFO] [docker:010c9441] #10 CACHED","timestamp":"2026-10-10T17:51:14.451495+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:14.451 [INFO] [docker:010c9441] #11 CACHED","timestamp":"2026-10-10T17:51:14.451592+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:14.451 [INFO] [docker:010c9441] #12 CACHED","timestamp":"2026-10-10T17:51:14.451693+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:15.615 [INFO] [docker:010c9441] #13 DONE 1.3s","timestamp":"2026-10-10T17:51:15.615449+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:24.052 [INFO] [docker:010c9441] #14 DONE 8.4s","timestamp":"2026-10-10T17:51:24.052174+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:24.334 [INFO] [docker:010c9441] #15 CACHED","timestamp":"2026-10-10T17:51:24.334530+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:26.053 [INFO] [docker:010c9441] #16 DONE 1.7s","timestamp":"2026-10-10T17:51:26.053536+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:27.634 [INFO] [docker:010c9441] #17 DONE 1.5s","timestamp":"2026-10-10T17:51:27.634693+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.633 [INFO] [docker:010c9441] build success: docker.fanson.cloud/fanson/meet-pilot:main-e50ed127","timestamp":"2026-10-10T17:51:28.633745+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.633 [INFO] [docker:010c9441] pushing docker.fanson.cloud/fanson/meet-pilot:main-e50ed127","timestamp":"2026-10-10T17:51:28.633854+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.672 [INFO] [docker:010c9441] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-10T17:51:28.672609+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.710 [INFO] [docker:010c9441] 9f23b6742d50: Preparing","timestamp":"2026-10-10T17:51:28.710849+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.710 [INFO] [docker:010c9441] 5f70bf18a086: Preparing","timestamp":"2026-10-10T17:51:28.710968+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] 71a2618c0925: Preparing","timestamp":"2026-10-10T17:51:28.711058+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] 6fc52eaf99f6: Preparing","timestamp":"2026-10-10T17:51:28.711149+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] cd4b3dc03178: Preparing","timestamp":"2026-10-10T17:51:28.711233+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] b4cfcb8385a8: Preparing","timestamp":"2026-10-10T17:51:28.711315+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] 2b730cf18c09: Preparing","timestamp":"2026-10-10T17:51:28.711398+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] edeaba958753: Preparing","timestamp":"2026-10-10T17:51:28.711479+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] 8bf42db0de72: Preparing","timestamp":"2026-10-10T17:51:28.711560+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] 31892cc314cb: Preparing","timestamp":"2026-10-10T17:51:28.711640+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] 11936051f93b: Preparing","timestamp":"2026-10-10T17:51:28.711732+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] 2b730cf18c09: Waiting","timestamp":"2026-10-10T17:51:28.711814+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] edeaba958753: Waiting","timestamp":"2026-10-10T17:51:28.711894+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.711 [INFO] [docker:010c9441] 8bf42db0de72: Waiting","timestamp":"2026-10-10T17:51:28.711974+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.712 [INFO] [docker:010c9441] 31892cc314cb: Waiting","timestamp":"2026-10-10T17:51:28.712054+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.712 [INFO] [docker:010c9441] 11936051f93b: Waiting","timestamp":"2026-10-10T17:51:28.712134+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:28.712 [INFO] [docker:010c9441] b4cfcb8385a8: Waiting","timestamp":"2026-10-10T17:51:28.712213+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:29.019 [INFO] [docker:010c9441] 6fc52eaf99f6: Layer already exists","timestamp":"2026-10-10T17:51:29.019127+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:29.108 [INFO] [docker:010c9441] 5f70bf18a086: Layer already exists","timestamp":"2026-10-10T17:51:29.108417+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:29.109 [INFO] [docker:010c9441] 71a2618c0925: Layer already exists","timestamp":"2026-10-10T17:51:29.109065+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:29.109 [INFO] [docker:010c9441] cd4b3dc03178: Layer already exists","timestamp":"2026-10-10T17:51:29.109382+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:29.132 [INFO] [docker:010c9441] b4cfcb8385a8: Layer already exists","timestamp":"2026-10-10T17:51:29.132918+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:29.239 [INFO] [docker:010c9441] 31892cc314cb: Layer already exists","timestamp":"2026-10-10T17:51:29.239864+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:29.251 [INFO] [docker:010c9441] 2b730cf18c09: Layer already exists","timestamp":"2026-10-10T17:51:29.251759+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:29.251 [INFO] [docker:010c9441] 8bf42db0de72: Layer already exists","timestamp":"2026-10-10T17:51:29.251893+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:29.252 [INFO] [docker:010c9441] edeaba958753: Layer already exists","timestamp":"2026-10-10T17:51:29.252738+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:29.381 [INFO] [docker:010c9441] 11936051f93b: Layer already exists","timestamp":"2026-10-10T17:51:29.381085+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:33.220 [INFO] [docker:010c9441] 9f23b6742d50: Pushed","timestamp":"2026-10-10T17:51:33.220315+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:33.980 [INFO] [docker:010c9441] main-e50ed127: digest: sha256:7dd1eb74b32ca56eaf78a2c210d7ebc03a74f6d364f40b8baec09312ad77dd73 size: 2628","timestamp":"2026-10-10T17:51:33.980012+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:34.072 [INFO] [docker:010c9441] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-10T17:51:34.072182+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-10-10 17:51:34.107 [INFO] [docker:010c9441] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-10T17:51:34.107751+08:00"},{"seq":69,"level":"ERROR","component":"docker","message":"[docker] 2026-10-10 17:51:34.108 [ERROR] [docker:010c9441] 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-10T17:51:34.108560+08:00"},{"seq":70,"level":"WARNING","component":"docker","message":"[docker] 2026-10-10 17:51:34.109 [WARNING] [docker:010c9441] 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-10T17:51:34.109028+08:00"},{"seq":71,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-10 17:51:34.109 [INFO] [orchestrator:010c9441] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-e50ed127","timestamp":"2026-10-10T17:51:34.109213+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-10-10 17:51:34.167 [INFO] [agent:010c9441] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-e50ed127","timestamp":"2026-10-10T17:51:34.167222+08:00"},{"seq":73,"level":"INFO","component":"agent","message":"[agent] 2026-10-10 17:51:34.174 [INFO] [agent:010c9441] workspace cleaned","timestamp":"2026-10-10T17:51:34.174833+08:00"}]}