{"job_id":"d17c39d5-c794-454c-beaa-26d3f539cd85","filters":{"level":null,"component":null},"total":72,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-09-23 14:55:31.946 [INFO] [agent:d17c39d5] 🚀 CI 流水线启动","timestamp":"2026-09-23T14:55:31.946297+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-09-23 14:55:31.946 [INFO] [git:d17c39d5] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/d17c39d5-c794-454c-beaa-26d3f539cd85 (branch=main)","timestamp":"2026-09-23T14:55:31.946622+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-09-23 14:55:32.490 [INFO] [git:d17c39d5] Cloning into '/app/data/workspace/d17c39d5-c794-454c-beaa-26d3f539cd85'...","timestamp":"2026-09-23T14:55:32.490458+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-09-23 14:55:32.490 [INFO] [git:d17c39d5] git clone success: /app/data/workspace/d17c39d5-c794-454c-beaa-26d3f539cd85","timestamp":"2026-09-23T14:55:32.490580+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-09-23 14:55:32.490 [INFO] [agent:d17c39d5] 📦 代码已克隆到 /app/data/workspace/d17c39d5-c794-454c-beaa-26d3f539cd85","timestamp":"2026-09-23T14:55:32.490904+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 14:55:32.491 [INFO] [orchestrator:d17c39d5] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-09-23T14:55:32.491836+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 14:55:32.957 [INFO] [orchestrator:d17c39d5] 📝 检测到变更的目录: src, src/main","timestamp":"2026-09-23T14:55:32.957010+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 14:55:33.635 [INFO] [orchestrator:d17c39d5] 📝 单服务项目，开始构建（代码指纹 0f7c9f02）","timestamp":"2026-09-23T14:55:33.635640+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 14:55:33.635 [INFO] [orchestrator:d17c39d5] 🔨 开始构建 1 个服务","timestamp":"2026-09-23T14:55:33.635778+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 14:55:33.639 [INFO] [orchestrator:d17c39d5] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-0f7c9f02","timestamp":"2026-09-23T14:55:33.639633+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:33.640 [INFO] [docker:d17c39d5] building docker.fanson.cloud/fanson/meet-pilot:main-0f7c9f02 (with cache)","timestamp":"2026-09-23T14:55:33.640111+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:33.942 [INFO] [docker:d17c39d5] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-09-23T14:55:33.942196+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:33.942 [INFO] [docker:d17c39d5] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-09-23T14:55:33.942324+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:33.942 [INFO] [docker:d17c39d5] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-09-23T14:55:33.942417+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-09-23 14:55:33.944 [ERROR] [docker:d17c39d5] 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-23T14:55:33.944479+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-09-23 14:55:33.944 [WARNING] [docker:d17c39d5] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-09-23T14:55:33.944825+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:33.944 [INFO] [docker:d17c39d5] building docker.fanson.cloud/fanson/meet-pilot:main-0f7c9f02 (native docker build)","timestamp":"2026-09-23T14:55:33.944929+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:34.896 [INFO] [docker:d17c39d5] #1 DONE 0.7s","timestamp":"2026-09-23T14:55:34.896480+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:35.302 [INFO] [docker:d17c39d5] #3 DONE 0.0s","timestamp":"2026-09-23T14:55:35.302497+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:35.858 [INFO] [docker:d17c39d5] #2 DONE 0.9s","timestamp":"2026-09-23T14:55:35.858614+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:36.098 [INFO] [docker:d17c39d5] #4 DONE 1.0s","timestamp":"2026-09-23T14:55:36.098088+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:36.422 [INFO] [docker:d17c39d5] #5 DONE 0.5s","timestamp":"2026-09-23T14:55:36.422301+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:36.611 [INFO] [docker:d17c39d5] #6 DONE 0.0s","timestamp":"2026-09-23T14:55:36.611416+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:36.611 [INFO] [docker:d17c39d5] #7 DONE 0.0s","timestamp":"2026-09-23T14:55:36.611547+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:37.041 [INFO] [docker:d17c39d5] #8 DONE 0.6s","timestamp":"2026-09-23T14:55:37.041595+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:37.248 [INFO] [docker:d17c39d5] #9 CACHED","timestamp":"2026-09-23T14:55:37.248590+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:37.248 [INFO] [docker:d17c39d5] #10 CACHED","timestamp":"2026-09-23T14:55:37.248725+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:37.248 [INFO] [docker:d17c39d5] #11 CACHED","timestamp":"2026-09-23T14:55:37.248830+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:37.248 [INFO] [docker:d17c39d5] #12 CACHED","timestamp":"2026-09-23T14:55:37.248930+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:38.257 [INFO] [docker:d17c39d5] #13 DONE 1.2s","timestamp":"2026-09-23T14:55:38.257945+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:45.975 [INFO] [docker:d17c39d5] #14 DONE 7.7s","timestamp":"2026-09-23T14:55:45.975970+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:46.301 [INFO] [docker:d17c39d5] #15 CACHED","timestamp":"2026-09-23T14:55:46.301313+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:47.800 [INFO] [docker:d17c39d5] #16 DONE 1.5s","timestamp":"2026-09-23T14:55:47.800415+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:49.558 [INFO] [docker:d17c39d5] #17 DONE 1.6s","timestamp":"2026-09-23T14:55:49.558416+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.457 [INFO] [docker:d17c39d5] build success: docker.fanson.cloud/fanson/meet-pilot:main-0f7c9f02","timestamp":"2026-09-23T14:55:50.457775+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.457 [INFO] [docker:d17c39d5] pushing docker.fanson.cloud/fanson/meet-pilot:main-0f7c9f02","timestamp":"2026-09-23T14:55:50.457884+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.497 [INFO] [docker:d17c39d5] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-09-23T14:55:50.497887+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.530 [INFO] [docker:d17c39d5] ee7a1695c5b8: Preparing","timestamp":"2026-09-23T14:55:50.530679+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.530 [INFO] [docker:d17c39d5] 5f70bf18a086: Preparing","timestamp":"2026-09-23T14:55:50.530798+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.530 [INFO] [docker:d17c39d5] 71a2618c0925: Preparing","timestamp":"2026-09-23T14:55:50.530892+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.530 [INFO] [docker:d17c39d5] 6fc52eaf99f6: Preparing","timestamp":"2026-09-23T14:55:50.530977+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] cd4b3dc03178: Preparing","timestamp":"2026-09-23T14:55:50.531059+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] b4cfcb8385a8: Preparing","timestamp":"2026-09-23T14:55:50.531139+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] 2b730cf18c09: Preparing","timestamp":"2026-09-23T14:55:50.531219+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] edeaba958753: Preparing","timestamp":"2026-09-23T14:55:50.531298+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] 8bf42db0de72: Preparing","timestamp":"2026-09-23T14:55:50.531378+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] 31892cc314cb: Preparing","timestamp":"2026-09-23T14:55:50.531460+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] 11936051f93b: Preparing","timestamp":"2026-09-23T14:55:50.531537+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] 2b730cf18c09: Waiting","timestamp":"2026-09-23T14:55:50.531617+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] 31892cc314cb: Waiting","timestamp":"2026-09-23T14:55:50.531702+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] 11936051f93b: Waiting","timestamp":"2026-09-23T14:55:50.531784+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] edeaba958753: Waiting","timestamp":"2026-09-23T14:55:50.531863+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.531 [INFO] [docker:d17c39d5] b4cfcb8385a8: Waiting","timestamp":"2026-09-23T14:55:50.531939+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.831 [INFO] [docker:d17c39d5] 5f70bf18a086: Layer already exists","timestamp":"2026-09-23T14:55:50.831060+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.869 [INFO] [docker:d17c39d5] 71a2618c0925: Layer already exists","timestamp":"2026-09-23T14:55:50.869232+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.870 [INFO] [docker:d17c39d5] cd4b3dc03178: Layer already exists","timestamp":"2026-09-23T14:55:50.870298+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.870 [INFO] [docker:d17c39d5] 6fc52eaf99f6: Layer already exists","timestamp":"2026-09-23T14:55:50.870617+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.949 [INFO] [docker:d17c39d5] b4cfcb8385a8: Layer already exists","timestamp":"2026-09-23T14:55:50.949256+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.983 [INFO] [docker:d17c39d5] 8bf42db0de72: Layer already exists","timestamp":"2026-09-23T14:55:50.983066+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.985 [INFO] [docker:d17c39d5] edeaba958753: Layer already exists","timestamp":"2026-09-23T14:55:50.985314+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:50.985 [INFO] [docker:d17c39d5] 2b730cf18c09: Layer already exists","timestamp":"2026-09-23T14:55:50.985418+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:51.062 [INFO] [docker:d17c39d5] 31892cc314cb: Layer already exists","timestamp":"2026-09-23T14:55:51.062688+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:51.089 [INFO] [docker:d17c39d5] 11936051f93b: Layer already exists","timestamp":"2026-09-23T14:55:51.089568+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:54.831 [INFO] [docker:d17c39d5] ee7a1695c5b8: Pushed","timestamp":"2026-09-23T14:55:54.831282+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:55.556 [INFO] [docker:d17c39d5] main-0f7c9f02: digest: sha256:d6f27c8a00d4186f28e7527ada4ae7ab2b15f007c0ab6b67dacec266034a32a4 size: 2628","timestamp":"2026-09-23T14:55:55.556974+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:55.642 [INFO] [docker:d17c39d5] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-09-23T14:55:55.642494+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-09-23 14:55:55.675 [INFO] [docker:d17c39d5] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-09-23T14:55:55.675947+08:00"},{"seq":68,"level":"ERROR","component":"docker","message":"[docker] 2026-09-23 14:55:55.676 [ERROR] [docker:d17c39d5] 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-23T14:55:55.676778+08:00"},{"seq":69,"level":"WARNING","component":"docker","message":"[docker] 2026-09-23 14:55:55.677 [WARNING] [docker:d17c39d5] 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-23T14:55:55.677168+08:00"},{"seq":70,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-23 14:55:55.677 [INFO] [orchestrator:d17c39d5] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-0f7c9f02","timestamp":"2026-09-23T14:55:55.677276+08:00"},{"seq":71,"level":"INFO","component":"agent","message":"[agent] 2026-09-23 14:55:55.714 [INFO] [agent:d17c39d5] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-0f7c9f02","timestamp":"2026-09-23T14:55:55.714830+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-09-23 14:55:55.719 [INFO] [agent:d17c39d5] workspace cleaned","timestamp":"2026-09-23T14:55:55.719492+08:00"}]}