{"job_id":"0ee3eb7a-45c7-4bcf-88f4-66c17f43067c","filters":{"level":null,"component":null},"total":73,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-10-08 11:38:37.164 [INFO] [agent:0ee3eb7a] 🚀 CI 流水线启动","timestamp":"2026-10-08T11:38:37.164642+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-10-08 11:38:37.164 [INFO] [git:0ee3eb7a] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/0ee3eb7a-45c7-4bcf-88f4-66c17f43067c (branch=main)","timestamp":"2026-10-08T11:38:37.165008+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-10-08 11:38:39.016 [INFO] [git:0ee3eb7a] Cloning into '/app/data/workspace/0ee3eb7a-45c7-4bcf-88f4-66c17f43067c'...","timestamp":"2026-10-08T11:38:39.016736+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-10-08 11:38:39.016 [INFO] [git:0ee3eb7a] git clone success: /app/data/workspace/0ee3eb7a-45c7-4bcf-88f4-66c17f43067c","timestamp":"2026-10-08T11:38:39.016844+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-10-08 11:38:39.017 [INFO] [agent:0ee3eb7a] 📦 代码已克隆到 /app/data/workspace/0ee3eb7a-45c7-4bcf-88f4-66c17f43067c","timestamp":"2026-10-08T11:38:39.017134+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 11:38:39.018 [INFO] [orchestrator:0ee3eb7a] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-10-08T11:38:39.018052+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 11:38:39.517 [INFO] [orchestrator:0ee3eb7a] 📝 检测到变更的目录: CLAUDE.md, src, src/main, src/test","timestamp":"2026-10-08T11:38:39.517411+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 11:38:40.181 [INFO] [orchestrator:0ee3eb7a] 📝 单服务项目，开始构建（代码指纹 75cd71ef）","timestamp":"2026-10-08T11:38:40.181743+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 11:38:40.181 [INFO] [orchestrator:0ee3eb7a] 🔨 开始构建 1 个服务","timestamp":"2026-10-08T11:38:40.181867+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 11:38:40.186 [INFO] [orchestrator:0ee3eb7a] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-75cd71ef","timestamp":"2026-10-08T11:38:40.186027+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:40.186 [INFO] [docker:0ee3eb7a] building docker.fanson.cloud/fanson/meet-pilot:main-75cd71ef (with cache)","timestamp":"2026-10-08T11:38:40.186492+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:40.417 [INFO] [docker:0ee3eb7a] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-10-08T11:38:40.417091+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:40.417 [INFO] [docker:0ee3eb7a] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-10-08T11:38:40.417225+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:40.417 [INFO] [docker:0ee3eb7a] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-10-08T11:38:40.417319+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-10-08 11:38:40.419 [ERROR] [docker:0ee3eb7a] 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-08T11:38:40.419295+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-10-08 11:38:40.419 [WARNING] [docker:0ee3eb7a] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-10-08T11:38:40.419669+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:40.419 [INFO] [docker:0ee3eb7a] building docker.fanson.cloud/fanson/meet-pilot:main-75cd71ef (native docker build)","timestamp":"2026-10-08T11:38:40.419776+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:41.127 [INFO] [docker:0ee3eb7a] #1 DONE 0.5s","timestamp":"2026-10-08T11:38:41.127189+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:41.462 [INFO] [docker:0ee3eb7a] #2 DONE 0.0s","timestamp":"2026-10-08T11:38:41.462909+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:41.868 [INFO] [docker:0ee3eb7a] #4 DONE 0.7s","timestamp":"2026-10-08T11:38:41.868324+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:42.531 [INFO] [docker:0ee3eb7a] #3 DONE 1.3s","timestamp":"2026-10-08T11:38:42.531554+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:43.073 [INFO] [docker:0ee3eb7a] #5 DONE 0.5s","timestamp":"2026-10-08T11:38:43.073235+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:43.292 [INFO] [docker:0ee3eb7a] #6 DONE 0.0s","timestamp":"2026-10-08T11:38:43.292999+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:43.293 [INFO] [docker:0ee3eb7a] #7 DONE 0.0s","timestamp":"2026-10-08T11:38:43.293123+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:43.725 [INFO] [docker:0ee3eb7a] #8 DONE 0.6s","timestamp":"2026-10-08T11:38:43.725617+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:43.932 [INFO] [docker:0ee3eb7a] #9 CACHED","timestamp":"2026-10-08T11:38:43.932675+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:43.932 [INFO] [docker:0ee3eb7a] #10 CACHED","timestamp":"2026-10-08T11:38:43.932811+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:43.932 [INFO] [docker:0ee3eb7a] #11 CACHED","timestamp":"2026-10-08T11:38:43.932913+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:43.933 [INFO] [docker:0ee3eb7a] #12 CACHED","timestamp":"2026-10-08T11:38:43.933010+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:45.074 [INFO] [docker:0ee3eb7a] #13 DONE 1.3s","timestamp":"2026-10-08T11:38:45.074774+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:53.710 [INFO] [docker:0ee3eb7a] #14 DONE 8.6s","timestamp":"2026-10-08T11:38:53.710454+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:54.042 [INFO] [docker:0ee3eb7a] #15 CACHED","timestamp":"2026-10-08T11:38:54.042087+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:55.689 [INFO] [docker:0ee3eb7a] #16 DONE 1.6s","timestamp":"2026-10-08T11:38:55.689600+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:57.613 [INFO] [docker:0ee3eb7a] #17 DONE 1.8s","timestamp":"2026-10-08T11:38:57.613600+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.601 [INFO] [docker:0ee3eb7a] build success: docker.fanson.cloud/fanson/meet-pilot:main-75cd71ef","timestamp":"2026-10-08T11:38:58.601464+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.601 [INFO] [docker:0ee3eb7a] pushing docker.fanson.cloud/fanson/meet-pilot:main-75cd71ef","timestamp":"2026-10-08T11:38:58.601577+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.640 [INFO] [docker:0ee3eb7a] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-08T11:38:58.640753+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] 25fb603051ad: Preparing","timestamp":"2026-10-08T11:38:58.674008+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] 5f70bf18a086: Preparing","timestamp":"2026-10-08T11:38:58.674127+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] 71a2618c0925: Preparing","timestamp":"2026-10-08T11:38:58.674216+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] 6fc52eaf99f6: Preparing","timestamp":"2026-10-08T11:38:58.674303+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] cd4b3dc03178: Preparing","timestamp":"2026-10-08T11:38:58.674390+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] b4cfcb8385a8: Preparing","timestamp":"2026-10-08T11:38:58.674472+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] 2b730cf18c09: Preparing","timestamp":"2026-10-08T11:38:58.674552+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] edeaba958753: Preparing","timestamp":"2026-10-08T11:38:58.674647+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] 8bf42db0de72: Preparing","timestamp":"2026-10-08T11:38:58.674737+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] 31892cc314cb: Preparing","timestamp":"2026-10-08T11:38:58.674819+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] 11936051f93b: Preparing","timestamp":"2026-10-08T11:38:58.674898+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.674 [INFO] [docker:0ee3eb7a] 2b730cf18c09: Waiting","timestamp":"2026-10-08T11:38:58.674977+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.675 [INFO] [docker:0ee3eb7a] 8bf42db0de72: Waiting","timestamp":"2026-10-08T11:38:58.675056+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.675 [INFO] [docker:0ee3eb7a] 11936051f93b: Waiting","timestamp":"2026-10-08T11:38:58.675134+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.675 [INFO] [docker:0ee3eb7a] edeaba958753: Waiting","timestamp":"2026-10-08T11:38:58.675212+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.675 [INFO] [docker:0ee3eb7a] 31892cc314cb: Waiting","timestamp":"2026-10-08T11:38:58.675290+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:58.675 [INFO] [docker:0ee3eb7a] b4cfcb8385a8: Waiting","timestamp":"2026-10-08T11:38:58.675368+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:59.006 [INFO] [docker:0ee3eb7a] cd4b3dc03178: Layer already exists","timestamp":"2026-10-08T11:38:59.006239+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:59.094 [INFO] [docker:0ee3eb7a] 6fc52eaf99f6: Layer already exists","timestamp":"2026-10-08T11:38:59.094576+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:59.095 [INFO] [docker:0ee3eb7a] 5f70bf18a086: Layer already exists","timestamp":"2026-10-08T11:38:59.095471+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:59.095 [INFO] [docker:0ee3eb7a] 71a2618c0925: Layer already exists","timestamp":"2026-10-08T11:38:59.095749+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:59.122 [INFO] [docker:0ee3eb7a] b4cfcb8385a8: Layer already exists","timestamp":"2026-10-08T11:38:59.122443+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:59.222 [INFO] [docker:0ee3eb7a] 8bf42db0de72: Layer already exists","timestamp":"2026-10-08T11:38:59.222161+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:59.242 [INFO] [docker:0ee3eb7a] 31892cc314cb: Layer already exists","timestamp":"2026-10-08T11:38:59.242751+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:59.242 [INFO] [docker:0ee3eb7a] edeaba958753: Layer already exists","timestamp":"2026-10-08T11:38:59.242925+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:59.243 [INFO] [docker:0ee3eb7a] 2b730cf18c09: Layer already exists","timestamp":"2026-10-08T11:38:59.243561+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:38:59.287 [INFO] [docker:0ee3eb7a] 11936051f93b: Layer already exists","timestamp":"2026-10-08T11:38:59.287036+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:39:03.398 [INFO] [docker:0ee3eb7a] 25fb603051ad: Pushed","timestamp":"2026-10-08T11:39:03.398977+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:39:04.125 [INFO] [docker:0ee3eb7a] main-75cd71ef: digest: sha256:a24874de4c247e042a866e65e462183fa271610bbd47babb6b27755ff4d3b0a0 size: 2628","timestamp":"2026-10-08T11:39:04.125707+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:39:04.222 [INFO] [docker:0ee3eb7a] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-08T11:39:04.222128+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-10-08 11:39:04.254 [INFO] [docker:0ee3eb7a] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-08T11:39:04.254917+08:00"},{"seq":69,"level":"ERROR","component":"docker","message":"[docker] 2026-10-08 11:39:04.255 [ERROR] [docker:0ee3eb7a] 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-08T11:39:04.255823+08:00"},{"seq":70,"level":"WARNING","component":"docker","message":"[docker] 2026-10-08 11:39:04.256 [WARNING] [docker:0ee3eb7a] 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-08T11:39:04.256195+08:00"},{"seq":71,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-08 11:39:04.256 [INFO] [orchestrator:0ee3eb7a] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-75cd71ef","timestamp":"2026-10-08T11:39:04.256298+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-10-08 11:39:04.312 [INFO] [agent:0ee3eb7a] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-75cd71ef","timestamp":"2026-10-08T11:39:04.312995+08:00"},{"seq":73,"level":"INFO","component":"agent","message":"[agent] 2026-10-08 11:39:04.318 [INFO] [agent:0ee3eb7a] workspace cleaned","timestamp":"2026-10-08T11:39:04.318007+08:00"}]}