{"job_id":"1a821412-42eb-4dda-85d6-02295cc02465","filters":{"level":null,"component":null},"total":73,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 18:17:08.610 [INFO] [agent:1a821412] 🚀 CI 流水线启动","timestamp":"2026-10-12T18:17:08.610633+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-10-12 18:17:08.610 [INFO] [git:1a821412] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/1a821412-42eb-4dda-85d6-02295cc02465 (branch=main)","timestamp":"2026-10-12T18:17:08.610974+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-10-12 18:17:09.227 [INFO] [git:1a821412] Cloning into '/app/data/workspace/1a821412-42eb-4dda-85d6-02295cc02465'...","timestamp":"2026-10-12T18:17:09.227431+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-10-12 18:17:09.227 [INFO] [git:1a821412] git clone success: /app/data/workspace/1a821412-42eb-4dda-85d6-02295cc02465","timestamp":"2026-10-12T18:17:09.227535+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 18:17:09.227 [INFO] [agent:1a821412] 📦 代码已克隆到 /app/data/workspace/1a821412-42eb-4dda-85d6-02295cc02465","timestamp":"2026-10-12T18:17:09.227843+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 18:17:09.228 [INFO] [orchestrator:1a821412] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-10-12T18:17:09.228778+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 18:17:09.757 [INFO] [orchestrator:1a821412] 📝 检测到变更的目录: \"docs, \"docs/meet-pilot-, src, src/main, src/test","timestamp":"2026-10-12T18:17:09.757847+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 18:17:10.410 [INFO] [orchestrator:1a821412] 📝 单服务项目，开始构建（代码指纹 4f03f633）","timestamp":"2026-10-12T18:17:10.410582+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 18:17:10.410 [INFO] [orchestrator:1a821412] 🔨 开始构建 1 个服务","timestamp":"2026-10-12T18:17:10.410728+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 18:17:10.414 [INFO] [orchestrator:1a821412] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-4f03f633","timestamp":"2026-10-12T18:17:10.414891+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:10.415 [INFO] [docker:1a821412] building docker.fanson.cloud/fanson/meet-pilot:main-4f03f633 (with cache)","timestamp":"2026-10-12T18:17:10.415381+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:10.674 [INFO] [docker:1a821412] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-10-12T18:17:10.674776+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:10.674 [INFO] [docker:1a821412] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-10-12T18:17:10.674913+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:10.675 [INFO] [docker:1a821412] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-10-12T18:17:10.675010+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-10-12 18:17:10.677 [ERROR] [docker:1a821412] 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-12T18:17:10.677143+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-10-12 18:17:10.677 [WARNING] [docker:1a821412] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-10-12T18:17:10.677481+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:10.677 [INFO] [docker:1a821412] building docker.fanson.cloud/fanson/meet-pilot:main-4f03f633 (native docker build)","timestamp":"2026-10-12T18:17:10.677589+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:11.418 [INFO] [docker:1a821412] #1 DONE 0.5s","timestamp":"2026-10-12T18:17:11.418599+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:11.706 [INFO] [docker:1a821412] #2 DONE 0.0s","timestamp":"2026-10-12T18:17:11.706121+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:11.927 [INFO] [docker:1a821412] #4 DONE 0.5s","timestamp":"2026-10-12T18:17:11.927758+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:13.563 [INFO] [docker:1a821412] #3 DONE 2.1s","timestamp":"2026-10-12T18:17:13.563864+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:14.050 [INFO] [docker:1a821412] #5 DONE 0.5s","timestamp":"2026-10-12T18:17:14.050159+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:14.237 [INFO] [docker:1a821412] #6 DONE 0.0s","timestamp":"2026-10-12T18:17:14.237396+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:14.237 [INFO] [docker:1a821412] #7 DONE 0.0s","timestamp":"2026-10-12T18:17:14.237557+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:14.658 [INFO] [docker:1a821412] #8 DONE 0.6s","timestamp":"2026-10-12T18:17:14.658370+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:14.780 [INFO] [docker:1a821412] #9 CACHED","timestamp":"2026-10-12T18:17:14.780829+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:14.780 [INFO] [docker:1a821412] #10 CACHED","timestamp":"2026-10-12T18:17:14.780954+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:14.781 [INFO] [docker:1a821412] #11 CACHED","timestamp":"2026-10-12T18:17:14.781055+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:14.781 [INFO] [docker:1a821412] #12 CACHED","timestamp":"2026-10-12T18:17:14.781151+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:15.952 [INFO] [docker:1a821412] #13 DONE 1.2s","timestamp":"2026-10-12T18:17:15.952217+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:24.034 [INFO] [docker:1a821412] #14 DONE 8.0s","timestamp":"2026-10-12T18:17:24.034948+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:24.356 [INFO] [docker:1a821412] #15 CACHED","timestamp":"2026-10-12T18:17:24.356427+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:25.947 [INFO] [docker:1a821412] #16 DONE 1.6s","timestamp":"2026-10-12T18:17:25.947971+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:27.661 [INFO] [docker:1a821412] #17 DONE 1.6s","timestamp":"2026-10-12T18:17:27.661822+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.506 [INFO] [docker:1a821412] build success: docker.fanson.cloud/fanson/meet-pilot:main-4f03f633","timestamp":"2026-10-12T18:17:28.506339+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.506 [INFO] [docker:1a821412] pushing docker.fanson.cloud/fanson/meet-pilot:main-4f03f633","timestamp":"2026-10-12T18:17:28.506460+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.542 [INFO] [docker:1a821412] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-12T18:17:28.542836+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.576 [INFO] [docker:1a821412] 9984e4fd9ddd: Preparing","timestamp":"2026-10-12T18:17:28.576884+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.576 [INFO] [docker:1a821412] 5f70bf18a086: Preparing","timestamp":"2026-10-12T18:17:28.576992+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] 71a2618c0925: Preparing","timestamp":"2026-10-12T18:17:28.577082+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] 6fc52eaf99f6: Preparing","timestamp":"2026-10-12T18:17:28.577169+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] cd4b3dc03178: Preparing","timestamp":"2026-10-12T18:17:28.577253+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] b4cfcb8385a8: Preparing","timestamp":"2026-10-12T18:17:28.577335+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] 2b730cf18c09: Preparing","timestamp":"2026-10-12T18:17:28.577421+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] edeaba958753: Preparing","timestamp":"2026-10-12T18:17:28.577501+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] 8bf42db0de72: Preparing","timestamp":"2026-10-12T18:17:28.577581+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] 31892cc314cb: Preparing","timestamp":"2026-10-12T18:17:28.577660+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] 11936051f93b: Preparing","timestamp":"2026-10-12T18:17:28.577762+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] b4cfcb8385a8: Waiting","timestamp":"2026-10-12T18:17:28.577844+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] 2b730cf18c09: Waiting","timestamp":"2026-10-12T18:17:28.577924+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.577 [INFO] [docker:1a821412] edeaba958753: Waiting","timestamp":"2026-10-12T18:17:28.578003+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.578 [INFO] [docker:1a821412] 8bf42db0de72: Waiting","timestamp":"2026-10-12T18:17:28.578081+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.578 [INFO] [docker:1a821412] 31892cc314cb: Waiting","timestamp":"2026-10-12T18:17:28.578161+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.578 [INFO] [docker:1a821412] 11936051f93b: Waiting","timestamp":"2026-10-12T18:17:28.578243+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.888 [INFO] [docker:1a821412] 6fc52eaf99f6: Layer already exists","timestamp":"2026-10-12T18:17:28.888970+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.934 [INFO] [docker:1a821412] 5f70bf18a086: Layer already exists","timestamp":"2026-10-12T18:17:28.934751+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.935 [INFO] [docker:1a821412] 71a2618c0925: Layer already exists","timestamp":"2026-10-12T18:17:28.935629+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.936 [INFO] [docker:1a821412] cd4b3dc03178: Layer already exists","timestamp":"2026-10-12T18:17:28.936254+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:28.965 [INFO] [docker:1a821412] b4cfcb8385a8: Layer already exists","timestamp":"2026-10-12T18:17:28.965783+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:29.076 [INFO] [docker:1a821412] 8bf42db0de72: Layer already exists","timestamp":"2026-10-12T18:17:29.076349+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:29.122 [INFO] [docker:1a821412] edeaba958753: Layer already exists","timestamp":"2026-10-12T18:17:29.122631+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:29.123 [INFO] [docker:1a821412] 31892cc314cb: Layer already exists","timestamp":"2026-10-12T18:17:29.123030+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:29.123 [INFO] [docker:1a821412] 2b730cf18c09: Layer already exists","timestamp":"2026-10-12T18:17:29.123498+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:29.154 [INFO] [docker:1a821412] 11936051f93b: Layer already exists","timestamp":"2026-10-12T18:17:29.154130+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:32.990 [INFO] [docker:1a821412] 9984e4fd9ddd: Pushed","timestamp":"2026-10-12T18:17:32.990875+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:33.805 [INFO] [docker:1a821412] main-4f03f633: digest: sha256:507535adb18033c75acbc77f8ce0b5cbbd955e18bd70c39df5b3401b6c9ce9bf size: 2628","timestamp":"2026-10-12T18:17:33.805644+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:33.904 [INFO] [docker:1a821412] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-12T18:17:33.904141+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 18:17:33.940 [INFO] [docker:1a821412] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-12T18:17:33.940633+08:00"},{"seq":69,"level":"ERROR","component":"docker","message":"[docker] 2026-10-12 18:17:33.941 [ERROR] [docker:1a821412] 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-12T18:17:33.941521+08:00"},{"seq":70,"level":"WARNING","component":"docker","message":"[docker] 2026-10-12 18:17:33.941 [WARNING] [docker:1a821412] 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-12T18:17:33.941854+08:00"},{"seq":71,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 18:17:33.941 [INFO] [orchestrator:1a821412] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-4f03f633","timestamp":"2026-10-12T18:17:33.941966+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 18:17:33.944 [INFO] [agent:1a821412] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-4f03f633","timestamp":"2026-10-12T18:17:33.944866+08:00"},{"seq":73,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 18:17:33.954 [INFO] [agent:1a821412] workspace cleaned","timestamp":"2026-10-12T18:17:33.954137+08:00"}]}