{"job_id":"b3f592cd-550b-4649-a077-405315781821","filters":{"level":null,"component":null},"total":73,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-09-23 16:37:31.121 [INFO] [agent:b3f592cd] 🚀 CI 流水线启动","timestamp":"2026-09-23T16:37:31.121152+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-09-23 16:37:31.121 [INFO] [git:b3f592cd] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/b3f592cd-550b-4649-a077-405315781821 (branch=main)","timestamp":"2026-09-23T16:37:31.121470+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-09-23 16:37:31.755 [INFO] [git:b3f592cd] Cloning into '/app/data/workspace/b3f592cd-550b-4649-a077-405315781821'...","timestamp":"2026-09-23T16:37:31.755607+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-09-23 16:37:31.755 [INFO] [git:b3f592cd] git clone success: /app/data/workspace/b3f592cd-550b-4649-a077-405315781821","timestamp":"2026-09-23T16:37:31.755729+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-09-23 16:37:31.756 [INFO] [agent:b3f592cd] 📦 代码已克隆到 /app/data/workspace/b3f592cd-550b-4649-a077-405315781821","timestamp":"2026-09-23T16:37:31.756025+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 16:37:31.756 [INFO] [orchestrator:b3f592cd] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-09-23T16:37:31.756946+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 16:37:32.275 [INFO] [orchestrator:b3f592cd] 📝 检测到变更的目录: pilot.log, src, src/main, src/test","timestamp":"2026-09-23T16:37:32.275881+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 16:37:32.924 [INFO] [orchestrator:b3f592cd] 📝 单服务项目，开始构建（代码指纹 783f7987）","timestamp":"2026-09-23T16:37:32.924620+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 16:37:32.924 [INFO] [orchestrator:b3f592cd] 🔨 开始构建 1 个服务","timestamp":"2026-09-23T16:37:32.924759+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 16:37:32.928 [INFO] [orchestrator:b3f592cd] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-783f7987","timestamp":"2026-09-23T16:37:32.928290+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:32.928 [INFO] [docker:b3f592cd] building docker.fanson.cloud/fanson/meet-pilot:main-783f7987 (with cache)","timestamp":"2026-09-23T16:37:32.928769+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:33.210 [INFO] [docker:b3f592cd] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-09-23T16:37:33.210078+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:33.210 [INFO] [docker:b3f592cd] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-09-23T16:37:33.210222+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:33.210 [INFO] [docker:b3f592cd] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-09-23T16:37:33.210318+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-09-23 16:37:33.212 [ERROR] [docker:b3f592cd] 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-09-23T16:37:33.212715+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-09-23 16:37:33.213 [WARNING] [docker:b3f592cd] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-09-23T16:37:33.213058+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:33.213 [INFO] [docker:b3f592cd] building docker.fanson.cloud/fanson/meet-pilot:main-783f7987 (native docker build)","timestamp":"2026-09-23T16:37:33.213151+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:34.052 [INFO] [docker:b3f592cd] #1 DONE 0.6s","timestamp":"2026-09-23T16:37:34.052934+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:34.371 [INFO] [docker:b3f592cd] #2 DONE 0.0s","timestamp":"2026-09-23T16:37:34.371255+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:34.882 [INFO] [docker:b3f592cd] #4 DONE 0.8s","timestamp":"2026-09-23T16:37:34.882486+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:35.059 [INFO] [docker:b3f592cd] #3 DONE 0.9s","timestamp":"2026-09-23T16:37:35.059327+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:35.700 [INFO] [docker:b3f592cd] #5 DONE 0.6s","timestamp":"2026-09-23T16:37:35.700559+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:35.920 [INFO] [docker:b3f592cd] #6 DONE 0.0s","timestamp":"2026-09-23T16:37:35.920797+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:35.920 [INFO] [docker:b3f592cd] #7 DONE 0.0s","timestamp":"2026-09-23T16:37:35.920949+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:36.452 [INFO] [docker:b3f592cd] #8 DONE 0.7s","timestamp":"2026-09-23T16:37:36.452373+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:36.637 [INFO] [docker:b3f592cd] #9 CACHED","timestamp":"2026-09-23T16:37:36.637116+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:36.637 [INFO] [docker:b3f592cd] #10 CACHED","timestamp":"2026-09-23T16:37:36.637270+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:36.637 [INFO] [docker:b3f592cd] #11 CACHED","timestamp":"2026-09-23T16:37:36.637394+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:36.637 [INFO] [docker:b3f592cd] #12 CACHED","timestamp":"2026-09-23T16:37:36.637510+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:37.945 [INFO] [docker:b3f592cd] #13 DONE 1.5s","timestamp":"2026-09-23T16:37:37.945166+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:45.265 [INFO] [docker:b3f592cd] #14 DONE 7.3s","timestamp":"2026-09-23T16:37:45.265062+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:45.618 [INFO] [docker:b3f592cd] #15 CACHED","timestamp":"2026-09-23T16:37:45.618319+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:47.067 [INFO] [docker:b3f592cd] #16 DONE 1.4s","timestamp":"2026-09-23T16:37:47.067442+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:48.615 [INFO] [docker:b3f592cd] #17 DONE 1.5s","timestamp":"2026-09-23T16:37:48.615388+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.437 [INFO] [docker:b3f592cd] build success: docker.fanson.cloud/fanson/meet-pilot:main-783f7987","timestamp":"2026-09-23T16:37:49.437390+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.437 [INFO] [docker:b3f592cd] pushing docker.fanson.cloud/fanson/meet-pilot:main-783f7987","timestamp":"2026-09-23T16:37:49.437495+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.474 [INFO] [docker:b3f592cd] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-09-23T16:37:49.474272+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.510 [INFO] [docker:b3f592cd] 20205b8d463d: Preparing","timestamp":"2026-09-23T16:37:49.510644+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.510 [INFO] [docker:b3f592cd] 5f70bf18a086: Preparing","timestamp":"2026-09-23T16:37:49.510774+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.510 [INFO] [docker:b3f592cd] 71a2618c0925: Preparing","timestamp":"2026-09-23T16:37:49.510865+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.510 [INFO] [docker:b3f592cd] 6fc52eaf99f6: Preparing","timestamp":"2026-09-23T16:37:49.510954+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] cd4b3dc03178: Preparing","timestamp":"2026-09-23T16:37:49.511038+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] b4cfcb8385a8: Preparing","timestamp":"2026-09-23T16:37:49.511125+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] 2b730cf18c09: Preparing","timestamp":"2026-09-23T16:37:49.511210+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] edeaba958753: Preparing","timestamp":"2026-09-23T16:37:49.511292+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] 8bf42db0de72: Preparing","timestamp":"2026-09-23T16:37:49.511372+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] 31892cc314cb: Preparing","timestamp":"2026-09-23T16:37:49.511451+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] 11936051f93b: Preparing","timestamp":"2026-09-23T16:37:49.511531+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] b4cfcb8385a8: Waiting","timestamp":"2026-09-23T16:37:49.511611+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] 2b730cf18c09: Waiting","timestamp":"2026-09-23T16:37:49.511691+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] edeaba958753: Waiting","timestamp":"2026-09-23T16:37:49.511792+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] 8bf42db0de72: Waiting","timestamp":"2026-09-23T16:37:49.511873+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.511 [INFO] [docker:b3f592cd] 31892cc314cb: Waiting","timestamp":"2026-09-23T16:37:49.511956+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.512 [INFO] [docker:b3f592cd] 11936051f93b: Waiting","timestamp":"2026-09-23T16:37:49.512036+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.815 [INFO] [docker:b3f592cd] 71a2618c0925: Layer already exists","timestamp":"2026-09-23T16:37:49.815651+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.889 [INFO] [docker:b3f592cd] 5f70bf18a086: Layer already exists","timestamp":"2026-09-23T16:37:49.889558+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.889 [INFO] [docker:b3f592cd] 6fc52eaf99f6: Layer already exists","timestamp":"2026-09-23T16:37:49.889718+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.889 [INFO] [docker:b3f592cd] cd4b3dc03178: Layer already exists","timestamp":"2026-09-23T16:37:49.889816+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:49.918 [INFO] [docker:b3f592cd] b4cfcb8385a8: Layer already exists","timestamp":"2026-09-23T16:37:49.918579+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:50.031 [INFO] [docker:b3f592cd] 2b730cf18c09: Layer already exists","timestamp":"2026-09-23T16:37:50.031051+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:50.043 [INFO] [docker:b3f592cd] edeaba958753: Layer already exists","timestamp":"2026-09-23T16:37:50.043183+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:50.043 [INFO] [docker:b3f592cd] 31892cc314cb: Layer already exists","timestamp":"2026-09-23T16:37:50.043305+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:50.043 [INFO] [docker:b3f592cd] 8bf42db0de72: Layer already exists","timestamp":"2026-09-23T16:37:50.043463+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:50.157 [INFO] [docker:b3f592cd] 11936051f93b: Layer already exists","timestamp":"2026-09-23T16:37:50.157838+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:53.902 [INFO] [docker:b3f592cd] 20205b8d463d: Pushed","timestamp":"2026-09-23T16:37:53.902328+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:54.661 [INFO] [docker:b3f592cd] main-783f7987: digest: sha256:e88af59435b0b4fe39fdb5495ce31426412670e7e7d896715a3ab45766b8afff size: 2628","timestamp":"2026-09-23T16:37:54.661937+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:54.744 [INFO] [docker:b3f592cd] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-09-23T16:37:54.744897+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 16:37:54.777 [INFO] [docker:b3f592cd] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-09-23T16:37:54.777434+08:00"},{"seq":69,"level":"ERROR","component":"docker","message":"[docker] 2026-09-23 16:37:54.778 [ERROR] [docker:b3f592cd] 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-09-23T16:37:54.778334+08:00"},{"seq":70,"level":"WARNING","component":"docker","message":"[docker] 2026-09-23 16:37:54.778 [WARNING] [docker:b3f592cd] 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-09-23T16:37:54.778642+08:00"},{"seq":71,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 16:37:54.778 [INFO] [orchestrator:b3f592cd] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-783f7987","timestamp":"2026-09-23T16:37:54.778758+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-09-23 16:37:54.816 [INFO] [agent:b3f592cd] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-783f7987","timestamp":"2026-09-23T16:37:54.816385+08:00"},{"seq":73,"level":"INFO","component":"agent","message":"[agent] 2026-09-23 16:37:54.822 [INFO] [agent:b3f592cd] workspace cleaned","timestamp":"2026-09-23T16:37:54.822498+08:00"}]}