{"job_id":"b08fd2bb-a202-46c4-9853-7eee6a512560","filters":{"level":null,"component":null},"total":73,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-10-09 12:07:47.321 [INFO] [agent:b08fd2bb] 🚀 CI 流水线启动","timestamp":"2026-10-09T12:07:47.321323+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-10-09 12:07:47.321 [INFO] [git:b08fd2bb] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/b08fd2bb-a202-46c4-9853-7eee6a512560 (branch=main)","timestamp":"2026-10-09T12:07:47.321636+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-10-09 12:07:48.340 [INFO] [git:b08fd2bb] Cloning into '/app/data/workspace/b08fd2bb-a202-46c4-9853-7eee6a512560'...","timestamp":"2026-10-09T12:07:48.340629+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-10-09 12:07:48.340 [INFO] [git:b08fd2bb] git clone success: /app/data/workspace/b08fd2bb-a202-46c4-9853-7eee6a512560","timestamp":"2026-10-09T12:07:48.340744+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-10-09 12:07:48.341 [INFO] [agent:b08fd2bb] 📦 代码已克隆到 /app/data/workspace/b08fd2bb-a202-46c4-9853-7eee6a512560","timestamp":"2026-10-09T12:07:48.341030+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 12:07:48.341 [INFO] [orchestrator:b08fd2bb] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-10-09T12:07:48.341973+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 12:07:49.071 [INFO] [orchestrator:b08fd2bb] 📝 检测到变更的目录: src, src/main, src/test","timestamp":"2026-10-09T12:07:49.071205+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 12:07:49.763 [INFO] [orchestrator:b08fd2bb] 📝 单服务项目，开始构建（代码指纹 ea1aa9fc）","timestamp":"2026-10-09T12:07:49.763743+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 12:07:49.763 [INFO] [orchestrator:b08fd2bb] 🔨 开始构建 1 个服务","timestamp":"2026-10-09T12:07:49.763895+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 12:07:49.767 [INFO] [orchestrator:b08fd2bb] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-ea1aa9fc","timestamp":"2026-10-09T12:07:49.767823+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:49.768 [INFO] [docker:b08fd2bb] building docker.fanson.cloud/fanson/meet-pilot:main-ea1aa9fc (with cache)","timestamp":"2026-10-09T12:07:49.768308+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:50.046 [INFO] [docker:b08fd2bb] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-10-09T12:07:50.046039+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:50.046 [INFO] [docker:b08fd2bb] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-10-09T12:07:50.046196+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:50.046 [INFO] [docker:b08fd2bb] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-10-09T12:07:50.046309+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-10-09 12:07:50.048 [ERROR] [docker:b08fd2bb] 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-09T12:07:50.048317+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-10-09 12:07:50.048 [WARNING] [docker:b08fd2bb] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-10-09T12:07:50.048683+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:50.048 [INFO] [docker:b08fd2bb] building docker.fanson.cloud/fanson/meet-pilot:main-ea1aa9fc (native docker build)","timestamp":"2026-10-09T12:07:50.048810+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:50.956 [INFO] [docker:b08fd2bb] #1 DONE 0.6s","timestamp":"2026-10-09T12:07:50.956316+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:51.286 [INFO] [docker:b08fd2bb] #2 DONE 0.0s","timestamp":"2026-10-09T12:07:51.286769+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:51.664 [INFO] [docker:b08fd2bb] #4 DONE 0.7s","timestamp":"2026-10-09T12:07:51.664148+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:52.703 [INFO] [docker:b08fd2bb] #3 DONE 1.7s","timestamp":"2026-10-09T12:07:52.703483+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:53.167 [INFO] [docker:b08fd2bb] #5 DONE 0.5s","timestamp":"2026-10-09T12:07:53.167766+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:53.365 [INFO] [docker:b08fd2bb] #6 DONE 0.0s","timestamp":"2026-10-09T12:07:53.365631+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:53.365 [INFO] [docker:b08fd2bb] #7 DONE 0.0s","timestamp":"2026-10-09T12:07:53.365773+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:53.731 [INFO] [docker:b08fd2bb] #8 DONE 0.5s","timestamp":"2026-10-09T12:07:53.731836+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:53.916 [INFO] [docker:b08fd2bb] #9 CACHED","timestamp":"2026-10-09T12:07:53.916568+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:53.916 [INFO] [docker:b08fd2bb] #10 CACHED","timestamp":"2026-10-09T12:07:53.916692+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:53.916 [INFO] [docker:b08fd2bb] #11 CACHED","timestamp":"2026-10-09T12:07:53.916808+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:53.916 [INFO] [docker:b08fd2bb] #12 CACHED","timestamp":"2026-10-09T12:07:53.916906+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:07:55.180 [INFO] [docker:b08fd2bb] #13 DONE 1.4s","timestamp":"2026-10-09T12:07:55.180247+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:03.296 [INFO] [docker:b08fd2bb] #14 DONE 8.1s","timestamp":"2026-10-09T12:08:03.296179+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:03.624 [INFO] [docker:b08fd2bb] #15 CACHED","timestamp":"2026-10-09T12:08:03.624554+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:05.109 [INFO] [docker:b08fd2bb] #16 DONE 1.5s","timestamp":"2026-10-09T12:08:05.109703+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:06.834 [INFO] [docker:b08fd2bb] #17 DONE 1.6s","timestamp":"2026-10-09T12:08:06.834408+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.866 [INFO] [docker:b08fd2bb] build success: docker.fanson.cloud/fanson/meet-pilot:main-ea1aa9fc","timestamp":"2026-10-09T12:08:07.866641+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.866 [INFO] [docker:b08fd2bb] pushing docker.fanson.cloud/fanson/meet-pilot:main-ea1aa9fc","timestamp":"2026-10-09T12:08:07.866782+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.904 [INFO] [docker:b08fd2bb] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-09T12:08:07.904384+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.938 [INFO] [docker:b08fd2bb] 15ecabddbb6c: Preparing","timestamp":"2026-10-09T12:08:07.938902+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] 5f70bf18a086: Preparing","timestamp":"2026-10-09T12:08:07.939025+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] 71a2618c0925: Preparing","timestamp":"2026-10-09T12:08:07.939114+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] 6fc52eaf99f6: Preparing","timestamp":"2026-10-09T12:08:07.939202+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] cd4b3dc03178: Preparing","timestamp":"2026-10-09T12:08:07.939288+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] b4cfcb8385a8: Preparing","timestamp":"2026-10-09T12:08:07.939373+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] 2b730cf18c09: Preparing","timestamp":"2026-10-09T12:08:07.939457+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] edeaba958753: Preparing","timestamp":"2026-10-09T12:08:07.939541+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] 8bf42db0de72: Preparing","timestamp":"2026-10-09T12:08:07.939624+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] 31892cc314cb: Preparing","timestamp":"2026-10-09T12:08:07.939714+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] 11936051f93b: Preparing","timestamp":"2026-10-09T12:08:07.939800+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] 8bf42db0de72: Waiting","timestamp":"2026-10-09T12:08:07.939882+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.939 [INFO] [docker:b08fd2bb] 2b730cf18c09: Waiting","timestamp":"2026-10-09T12:08:07.939965+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.940 [INFO] [docker:b08fd2bb] 31892cc314cb: Waiting","timestamp":"2026-10-09T12:08:07.940051+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.940 [INFO] [docker:b08fd2bb] edeaba958753: Waiting","timestamp":"2026-10-09T12:08:07.940133+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.940 [INFO] [docker:b08fd2bb] 11936051f93b: Waiting","timestamp":"2026-10-09T12:08:07.940215+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:07.940 [INFO] [docker:b08fd2bb] b4cfcb8385a8: Waiting","timestamp":"2026-10-09T12:08:07.940302+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:08.258 [INFO] [docker:b08fd2bb] 6fc52eaf99f6: Layer already exists","timestamp":"2026-10-09T12:08:08.258030+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:08.308 [INFO] [docker:b08fd2bb] 5f70bf18a086: Layer already exists","timestamp":"2026-10-09T12:08:08.308093+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:08.309 [INFO] [docker:b08fd2bb] cd4b3dc03178: Layer already exists","timestamp":"2026-10-09T12:08:08.309268+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:08.309 [INFO] [docker:b08fd2bb] 71a2618c0925: Layer already exists","timestamp":"2026-10-09T12:08:08.309361+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:08.318 [INFO] [docker:b08fd2bb] b4cfcb8385a8: Layer already exists","timestamp":"2026-10-09T12:08:08.318376+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:08.431 [INFO] [docker:b08fd2bb] edeaba958753: Layer already exists","timestamp":"2026-10-09T12:08:08.431996+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:08.452 [INFO] [docker:b08fd2bb] 31892cc314cb: Layer already exists","timestamp":"2026-10-09T12:08:08.452520+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:08.452 [INFO] [docker:b08fd2bb] 2b730cf18c09: Layer already exists","timestamp":"2026-10-09T12:08:08.452659+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:08.453 [INFO] [docker:b08fd2bb] 8bf42db0de72: Layer already exists","timestamp":"2026-10-09T12:08:08.453398+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:08.530 [INFO] [docker:b08fd2bb] 11936051f93b: Layer already exists","timestamp":"2026-10-09T12:08:08.530797+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:12.796 [INFO] [docker:b08fd2bb] 15ecabddbb6c: Pushed","timestamp":"2026-10-09T12:08:12.796778+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:13.490 [INFO] [docker:b08fd2bb] main-ea1aa9fc: digest: sha256:8c9ae446b7381f2cc26b3ce376ede131accaeb98e2aabaa8eafa89b920bf86f4 size: 2628","timestamp":"2026-10-09T12:08:13.490241+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:13.585 [INFO] [docker:b08fd2bb] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-09T12:08:13.585101+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 12:08:13.620 [INFO] [docker:b08fd2bb] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-09T12:08:13.620253+08:00"},{"seq":69,"level":"ERROR","component":"docker","message":"[docker] 2026-10-09 12:08:13.621 [ERROR] [docker:b08fd2bb] 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-09T12:08:13.621074+08:00"},{"seq":70,"level":"WARNING","component":"docker","message":"[docker] 2026-10-09 12:08:13.621 [WARNING] [docker:b08fd2bb] 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-09T12:08:13.621509+08:00"},{"seq":71,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 12:08:13.621 [INFO] [orchestrator:b08fd2bb] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-ea1aa9fc","timestamp":"2026-10-09T12:08:13.621676+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-10-09 12:08:13.678 [INFO] [agent:b08fd2bb] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-ea1aa9fc","timestamp":"2026-10-09T12:08:13.678315+08:00"},{"seq":73,"level":"INFO","component":"agent","message":"[agent] 2026-10-09 12:08:13.683 [INFO] [agent:b08fd2bb] workspace cleaned","timestamp":"2026-10-09T12:08:13.683386+08:00"}]}