{"job_id":"a22e8a04-6789-4b52-b792-157b6efb84d5","filters":{"level":null,"component":null},"total":73,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 17:52:50.029 [INFO] [agent:a22e8a04] 🚀 CI 流水线启动","timestamp":"2026-10-12T17:52:50.029417+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-10-12 17:52:50.029 [INFO] [git:a22e8a04] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/a22e8a04-6789-4b52-b792-157b6efb84d5 (branch=main)","timestamp":"2026-10-12T17:52:50.029733+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-10-12 17:52:50.823 [INFO] [git:a22e8a04] Cloning into '/app/data/workspace/a22e8a04-6789-4b52-b792-157b6efb84d5'...","timestamp":"2026-10-12T17:52:50.823671+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-10-12 17:52:50.823 [INFO] [git:a22e8a04] git clone success: /app/data/workspace/a22e8a04-6789-4b52-b792-157b6efb84d5","timestamp":"2026-10-12T17:52:50.823782+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 17:52:50.824 [INFO] [agent:a22e8a04] 📦 代码已克隆到 /app/data/workspace/a22e8a04-6789-4b52-b792-157b6efb84d5","timestamp":"2026-10-12T17:52:50.824057+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 17:52:50.824 [INFO] [orchestrator:a22e8a04] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-10-12T17:52:50.824978+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 17:52:51.332 [INFO] [orchestrator:a22e8a04] 📝 检测到变更的目录: \"docs, \"docs/meet-pilot-, src, src/main, src/test","timestamp":"2026-10-12T17:52:51.332466+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 17:52:51.998 [INFO] [orchestrator:a22e8a04] 📝 单服务项目，开始构建（代码指纹 84680b81）","timestamp":"2026-10-12T17:52:51.998754+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 17:52:51.998 [INFO] [orchestrator:a22e8a04] 🔨 开始构建 1 个服务","timestamp":"2026-10-12T17:52:51.998906+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 17:52:52.003 [INFO] [orchestrator:a22e8a04] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-84680b81","timestamp":"2026-10-12T17:52:52.003773+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:52.004 [INFO] [docker:a22e8a04] building docker.fanson.cloud/fanson/meet-pilot:main-84680b81 (with cache)","timestamp":"2026-10-12T17:52:52.004270+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:52.278 [INFO] [docker:a22e8a04] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-10-12T17:52:52.278460+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:52.278 [INFO] [docker:a22e8a04] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-10-12T17:52:52.278591+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:52.278 [INFO] [docker:a22e8a04] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-10-12T17:52:52.278690+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-10-12 17:52:52.280 [ERROR] [docker:a22e8a04] 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-12T17:52:52.280955+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-10-12 17:52:52.281 [WARNING] [docker:a22e8a04] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-10-12T17:52:52.281273+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:52.281 [INFO] [docker:a22e8a04] building docker.fanson.cloud/fanson/meet-pilot:main-84680b81 (native docker build)","timestamp":"2026-10-12T17:52:52.281369+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:53.044 [INFO] [docker:a22e8a04] #1 DONE 0.5s","timestamp":"2026-10-12T17:52:53.044835+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:53.417 [INFO] [docker:a22e8a04] #3 DONE 0.0s","timestamp":"2026-10-12T17:52:53.417953+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:53.741 [INFO] [docker:a22e8a04] #2 DONE 0.6s","timestamp":"2026-10-12T17:52:53.741719+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:54.626 [INFO] [docker:a22e8a04] #4 DONE 1.5s","timestamp":"2026-10-12T17:52:54.626264+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:55.223 [INFO] [docker:a22e8a04] #5 DONE 0.6s","timestamp":"2026-10-12T17:52:55.223186+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:55.420 [INFO] [docker:a22e8a04] #6 DONE 0.0s","timestamp":"2026-10-12T17:52:55.420880+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:55.421 [INFO] [docker:a22e8a04] #7 DONE 0.0s","timestamp":"2026-10-12T17:52:55.421017+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:55.853 [INFO] [docker:a22e8a04] #8 DONE 0.6s","timestamp":"2026-10-12T17:52:55.853374+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:56.082 [INFO] [docker:a22e8a04] #9 CACHED","timestamp":"2026-10-12T17:52:56.082743+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:56.082 [INFO] [docker:a22e8a04] #10 CACHED","timestamp":"2026-10-12T17:52:56.082870+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:56.082 [INFO] [docker:a22e8a04] #11 CACHED","timestamp":"2026-10-12T17:52:56.082974+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:56.083 [INFO] [docker:a22e8a04] #12 CACHED","timestamp":"2026-10-12T17:52:56.083079+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:52:57.313 [INFO] [docker:a22e8a04] #13 DONE 1.4s","timestamp":"2026-10-12T17:52:57.313072+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:05.628 [INFO] [docker:a22e8a04] #14 DONE 8.3s","timestamp":"2026-10-12T17:53:05.628064+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:05.964 [INFO] [docker:a22e8a04] #15 CACHED","timestamp":"2026-10-12T17:53:05.964620+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:07.607 [INFO] [docker:a22e8a04] #16 DONE 1.6s","timestamp":"2026-10-12T17:53:07.607352+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:09.166 [INFO] [docker:a22e8a04] #17 DONE 1.5s","timestamp":"2026-10-12T17:53:09.166329+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.110 [INFO] [docker:a22e8a04] build success: docker.fanson.cloud/fanson/meet-pilot:main-84680b81","timestamp":"2026-10-12T17:53:10.110649+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.110 [INFO] [docker:a22e8a04] pushing docker.fanson.cloud/fanson/meet-pilot:main-84680b81","timestamp":"2026-10-12T17:53:10.110766+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.148 [INFO] [docker:a22e8a04] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-12T17:53:10.148204+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.184 [INFO] [docker:a22e8a04] 4e7f632aa6ae: Preparing","timestamp":"2026-10-12T17:53:10.184918+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] 5f70bf18a086: Preparing","timestamp":"2026-10-12T17:53:10.185033+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] 71a2618c0925: Preparing","timestamp":"2026-10-12T17:53:10.185123+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] 6fc52eaf99f6: Preparing","timestamp":"2026-10-12T17:53:10.185210+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] cd4b3dc03178: Preparing","timestamp":"2026-10-12T17:53:10.185293+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] b4cfcb8385a8: Preparing","timestamp":"2026-10-12T17:53:10.185374+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] 2b730cf18c09: Preparing","timestamp":"2026-10-12T17:53:10.185454+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] edeaba958753: Preparing","timestamp":"2026-10-12T17:53:10.185533+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] 8bf42db0de72: Preparing","timestamp":"2026-10-12T17:53:10.185611+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] 31892cc314cb: Preparing","timestamp":"2026-10-12T17:53:10.185689+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] 11936051f93b: Preparing","timestamp":"2026-10-12T17:53:10.185777+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] b4cfcb8385a8: Waiting","timestamp":"2026-10-12T17:53:10.185857+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.185 [INFO] [docker:a22e8a04] 2b730cf18c09: Waiting","timestamp":"2026-10-12T17:53:10.185935+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.186 [INFO] [docker:a22e8a04] 31892cc314cb: Waiting","timestamp":"2026-10-12T17:53:10.186013+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.186 [INFO] [docker:a22e8a04] edeaba958753: Waiting","timestamp":"2026-10-12T17:53:10.186092+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.186 [INFO] [docker:a22e8a04] 11936051f93b: Waiting","timestamp":"2026-10-12T17:53:10.186172+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.186 [INFO] [docker:a22e8a04] 8bf42db0de72: Waiting","timestamp":"2026-10-12T17:53:10.186259+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.499 [INFO] [docker:a22e8a04] 6fc52eaf99f6: Layer already exists","timestamp":"2026-10-12T17:53:10.499411+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.553 [INFO] [docker:a22e8a04] 71a2618c0925: Layer already exists","timestamp":"2026-10-12T17:53:10.553875+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.554 [INFO] [docker:a22e8a04] 5f70bf18a086: Layer already exists","timestamp":"2026-10-12T17:53:10.554654+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.555 [INFO] [docker:a22e8a04] cd4b3dc03178: Layer already exists","timestamp":"2026-10-12T17:53:10.555012+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.578 [INFO] [docker:a22e8a04] b4cfcb8385a8: Layer already exists","timestamp":"2026-10-12T17:53:10.578269+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.675 [INFO] [docker:a22e8a04] edeaba958753: Layer already exists","timestamp":"2026-10-12T17:53:10.675623+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.689 [INFO] [docker:a22e8a04] 31892cc314cb: Layer already exists","timestamp":"2026-10-12T17:53:10.689967+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.690 [INFO] [docker:a22e8a04] 8bf42db0de72: Layer already exists","timestamp":"2026-10-12T17:53:10.690160+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.690 [INFO] [docker:a22e8a04] 2b730cf18c09: Layer already exists","timestamp":"2026-10-12T17:53:10.690823+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:10.780 [INFO] [docker:a22e8a04] 11936051f93b: Layer already exists","timestamp":"2026-10-12T17:53:10.780210+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:14.912 [INFO] [docker:a22e8a04] 4e7f632aa6ae: Pushed","timestamp":"2026-10-12T17:53:14.912750+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:15.684 [INFO] [docker:a22e8a04] main-84680b81: digest: sha256:42726a3ce43baab3cd2d182dcbc6e18e72d35a7e8d0d29e4e8ad51b3dad6f1c9 size: 2628","timestamp":"2026-10-12T17:53:15.684413+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:15.778 [INFO] [docker:a22e8a04] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-12T17:53:15.778440+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-10-12 17:53:15.811 [INFO] [docker:a22e8a04] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-12T17:53:15.811639+08:00"},{"seq":69,"level":"ERROR","component":"docker","message":"[docker] 2026-10-12 17:53:15.812 [ERROR] [docker:a22e8a04] 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-12T17:53:15.812571+08:00"},{"seq":70,"level":"WARNING","component":"docker","message":"[docker] 2026-10-12 17:53:15.812 [WARNING] [docker:a22e8a04] 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-12T17:53:15.812902+08:00"},{"seq":71,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-12 17:53:15.813 [INFO] [orchestrator:a22e8a04] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-84680b81","timestamp":"2026-10-12T17:53:15.813034+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 17:53:15.869 [INFO] [agent:a22e8a04] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-84680b81","timestamp":"2026-10-12T17:53:15.869444+08:00"},{"seq":73,"level":"INFO","component":"agent","message":"[agent] 2026-10-12 17:53:15.877 [INFO] [agent:a22e8a04] workspace cleaned","timestamp":"2026-10-12T17:53:15.877923+08:00"}]}