{"job_id":"6be29151-27ee-41df-98d9-74dd5b255db1","filters":{"level":null,"component":null},"total":73,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-10-08 13:36:06.334 [INFO] [agent:6be29151] 🚀 CI 流水线启动","timestamp":"2026-10-08T13:36:06.334055+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-10-08 13:36:06.334 [INFO] [git:6be29151] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/6be29151-27ee-41df-98d9-74dd5b255db1 (branch=main)","timestamp":"2026-10-08T13:36:06.334368+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-10-08 13:36:06.928 [INFO] [git:6be29151] Cloning into '/app/data/workspace/6be29151-27ee-41df-98d9-74dd5b255db1'...","timestamp":"2026-10-08T13:36:06.928284+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-10-08 13:36:06.928 [INFO] [git:6be29151] git clone success: /app/data/workspace/6be29151-27ee-41df-98d9-74dd5b255db1","timestamp":"2026-10-08T13:36:06.928386+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-10-08 13:36:06.928 [INFO] [agent:6be29151] 📦 代码已克隆到 /app/data/workspace/6be29151-27ee-41df-98d9-74dd5b255db1","timestamp":"2026-10-08T13:36:06.928657+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 13:36:06.929 [INFO] [orchestrator:6be29151] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-10-08T13:36:06.929571+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 13:36:07.634 [INFO] [orchestrator:6be29151] 📝 检测到变更的目录: src, src/main, src/test","timestamp":"2026-10-08T13:36:07.634813+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 13:36:08.331 [INFO] [orchestrator:6be29151] 📝 单服务项目，开始构建（代码指纹 876e16dd）","timestamp":"2026-10-08T13:36:08.331535+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 13:36:08.331 [INFO] [orchestrator:6be29151] 🔨 开始构建 1 个服务","timestamp":"2026-10-08T13:36:08.331682+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 13:36:08.335 [INFO] [orchestrator:6be29151] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-876e16dd","timestamp":"2026-10-08T13:36:08.335786+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:08.336 [INFO] [docker:6be29151] building docker.fanson.cloud/fanson/meet-pilot:main-876e16dd (with cache)","timestamp":"2026-10-08T13:36:08.336260+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:08.626 [INFO] [docker:6be29151] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-10-08T13:36:08.626857+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:08.626 [INFO] [docker:6be29151] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-10-08T13:36:08.626993+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:08.627 [INFO] [docker:6be29151] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-10-08T13:36:08.627085+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-10-08 13:36:08.629 [ERROR] [docker:6be29151] 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-08T13:36:08.629083+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-10-08 13:36:08.629 [WARNING] [docker:6be29151] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-10-08T13:36:08.629487+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:08.629 [INFO] [docker:6be29151] building docker.fanson.cloud/fanson/meet-pilot:main-876e16dd (native docker build)","timestamp":"2026-10-08T13:36:08.629635+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:09.393 [INFO] [docker:6be29151] #1 DONE 0.5s","timestamp":"2026-10-08T13:36:09.393429+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:09.749 [INFO] [docker:6be29151] #2 DONE 0.0s","timestamp":"2026-10-08T13:36:09.749895+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:10.112 [INFO] [docker:6be29151] #4 DONE 0.7s","timestamp":"2026-10-08T13:36:10.112230+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:10.333 [INFO] [docker:6be29151] #3 DONE 0.9s","timestamp":"2026-10-08T13:36:10.333291+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:10.863 [INFO] [docker:6be29151] #5 DONE 0.5s","timestamp":"2026-10-08T13:36:10.863919+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:11.084 [INFO] [docker:6be29151] #6 DONE 0.0s","timestamp":"2026-10-08T13:36:11.084692+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:11.084 [INFO] [docker:6be29151] #7 DONE 0.0s","timestamp":"2026-10-08T13:36:11.084837+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:11.516 [INFO] [docker:6be29151] #8 DONE 0.6s","timestamp":"2026-10-08T13:36:11.516398+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:11.723 [INFO] [docker:6be29151] #9 CACHED","timestamp":"2026-10-08T13:36:11.723316+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:11.723 [INFO] [docker:6be29151] #10 CACHED","timestamp":"2026-10-08T13:36:11.723451+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:11.723 [INFO] [docker:6be29151] #11 CACHED","timestamp":"2026-10-08T13:36:11.723554+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:11.723 [INFO] [docker:6be29151] #12 CACHED","timestamp":"2026-10-08T13:36:11.723652+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:12.854 [INFO] [docker:6be29151] #13 DONE 1.3s","timestamp":"2026-10-08T13:36:12.854377+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:20.693 [INFO] [docker:6be29151] #14 DONE 7.8s","timestamp":"2026-10-08T13:36:20.693916+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:21.022 [INFO] [docker:6be29151] #15 CACHED","timestamp":"2026-10-08T13:36:21.022601+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:22.700 [INFO] [docker:6be29151] #16 DONE 1.7s","timestamp":"2026-10-08T13:36:22.700955+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:24.619 [INFO] [docker:6be29151] #17 DONE 1.7s","timestamp":"2026-10-08T13:36:24.619248+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.750 [INFO] [docker:6be29151] build success: docker.fanson.cloud/fanson/meet-pilot:main-876e16dd","timestamp":"2026-10-08T13:36:25.750930+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.751 [INFO] [docker:6be29151] pushing docker.fanson.cloud/fanson/meet-pilot:main-876e16dd","timestamp":"2026-10-08T13:36:25.751038+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.787 [INFO] [docker:6be29151] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-08T13:36:25.787604+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.838 [INFO] [docker:6be29151] 01825e395059: Preparing","timestamp":"2026-10-08T13:36:25.838991+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.839 [INFO] [docker:6be29151] 5f70bf18a086: Preparing","timestamp":"2026-10-08T13:36:25.839119+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.839 [INFO] [docker:6be29151] 71a2618c0925: Preparing","timestamp":"2026-10-08T13:36:25.839228+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.839 [INFO] [docker:6be29151] 6fc52eaf99f6: Preparing","timestamp":"2026-10-08T13:36:25.839328+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.839 [INFO] [docker:6be29151] cd4b3dc03178: Preparing","timestamp":"2026-10-08T13:36:25.839427+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.839 [INFO] [docker:6be29151] b4cfcb8385a8: Preparing","timestamp":"2026-10-08T13:36:25.839524+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.839 [INFO] [docker:6be29151] 2b730cf18c09: Preparing","timestamp":"2026-10-08T13:36:25.839622+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.839 [INFO] [docker:6be29151] edeaba958753: Preparing","timestamp":"2026-10-08T13:36:25.839731+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.839 [INFO] [docker:6be29151] 8bf42db0de72: Preparing","timestamp":"2026-10-08T13:36:25.839829+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.839 [INFO] [docker:6be29151] 31892cc314cb: Preparing","timestamp":"2026-10-08T13:36:25.839925+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.840 [INFO] [docker:6be29151] 11936051f93b: Preparing","timestamp":"2026-10-08T13:36:25.840021+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.840 [INFO] [docker:6be29151] 2b730cf18c09: Waiting","timestamp":"2026-10-08T13:36:25.840110+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.840 [INFO] [docker:6be29151] edeaba958753: Waiting","timestamp":"2026-10-08T13:36:25.840197+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.840 [INFO] [docker:6be29151] 8bf42db0de72: Waiting","timestamp":"2026-10-08T13:36:25.840284+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.840 [INFO] [docker:6be29151] 31892cc314cb: Waiting","timestamp":"2026-10-08T13:36:25.840371+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.840 [INFO] [docker:6be29151] 11936051f93b: Waiting","timestamp":"2026-10-08T13:36:25.840460+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:25.840 [INFO] [docker:6be29151] b4cfcb8385a8: Waiting","timestamp":"2026-10-08T13:36:25.840727+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:26.143 [INFO] [docker:6be29151] 5f70bf18a086: Layer already exists","timestamp":"2026-10-08T13:36:26.143129+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:26.200 [INFO] [docker:6be29151] 6fc52eaf99f6: Layer already exists","timestamp":"2026-10-08T13:36:26.200078+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:26.200 [INFO] [docker:6be29151] cd4b3dc03178: Layer already exists","timestamp":"2026-10-08T13:36:26.200655+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:26.200 [INFO] [docker:6be29151] 71a2618c0925: Layer already exists","timestamp":"2026-10-08T13:36:26.200795+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:26.227 [INFO] [docker:6be29151] b4cfcb8385a8: Layer already exists","timestamp":"2026-10-08T13:36:26.227631+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:26.316 [INFO] [docker:6be29151] 2b730cf18c09: Layer already exists","timestamp":"2026-10-08T13:36:26.316317+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:26.328 [INFO] [docker:6be29151] 31892cc314cb: Layer already exists","timestamp":"2026-10-08T13:36:26.328038+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:26.328 [INFO] [docker:6be29151] 8bf42db0de72: Layer already exists","timestamp":"2026-10-08T13:36:26.328252+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:26.328 [INFO] [docker:6be29151] edeaba958753: Layer already exists","timestamp":"2026-10-08T13:36:26.328507+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:26.393 [INFO] [docker:6be29151] 11936051f93b: Layer already exists","timestamp":"2026-10-08T13:36:26.393537+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:30.618 [INFO] [docker:6be29151] 01825e395059: Pushed","timestamp":"2026-10-08T13:36:30.618171+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:31.321 [INFO] [docker:6be29151] main-876e16dd: digest: sha256:87bd83f81f6bb5203c2a84b0bde8f8b75f7058b20299a52f0da6ce4f503caa5b size: 2628","timestamp":"2026-10-08T13:36:31.321537+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:31.410 [INFO] [docker:6be29151] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-08T13:36:31.410966+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 13:36:31.444 [INFO] [docker:6be29151] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-08T13:36:31.444622+08:00"},{"seq":69,"level":"ERROR","component":"docker","message":"[docker] 2026-10-08 13:36:31.445 [ERROR] [docker:6be29151] 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-08T13:36:31.445467+08:00"},{"seq":70,"level":"WARNING","component":"docker","message":"[docker] 2026-10-08 13:36:31.445 [WARNING] [docker:6be29151] 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-08T13:36:31.445806+08:00"},{"seq":71,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 13:36:31.445 [INFO] [orchestrator:6be29151] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-876e16dd","timestamp":"2026-10-08T13:36:31.445960+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-10-08 13:36:31.502 [INFO] [agent:6be29151] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-876e16dd","timestamp":"2026-10-08T13:36:31.502442+08:00"},{"seq":73,"level":"INFO","component":"agent","message":"[agent] 2026-10-08 13:36:31.507 [INFO] [agent:6be29151] workspace cleaned","timestamp":"2026-10-08T13:36:31.507447+08:00"}]}