{"job_id":"9e8396de-fe80-4cda-81ee-b43a3dd416c3","filters":{"level":null,"component":null},"total":72,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-10-13 09:22:36.284 [INFO] [agent:9e8396de] 🚀 CI 流水线启动","timestamp":"2026-10-13T09:22:36.284009+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-10-13 09:22:36.284 [INFO] [git:9e8396de] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/9e8396de-fe80-4cda-81ee-b43a3dd416c3 (branch=main)","timestamp":"2026-10-13T09:22:36.284318+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-10-13 09:22:37.269 [INFO] [git:9e8396de] Cloning into '/app/data/workspace/9e8396de-fe80-4cda-81ee-b43a3dd416c3'...","timestamp":"2026-10-13T09:22:37.269066+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-10-13 09:22:37.269 [INFO] [git:9e8396de] git clone success: /app/data/workspace/9e8396de-fe80-4cda-81ee-b43a3dd416c3","timestamp":"2026-10-13T09:22:37.269200+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-10-13 09:22:37.269 [INFO] [agent:9e8396de] 📦 代码已克隆到 /app/data/workspace/9e8396de-fe80-4cda-81ee-b43a3dd416c3","timestamp":"2026-10-13T09:22:37.269520+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-13 09:22:37.270 [INFO] [orchestrator:9e8396de] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-10-13T09:22:37.270478+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-13 09:22:37.785 [INFO] [orchestrator:9e8396de] 📝 检测到变更的目录: src, src/main","timestamp":"2026-10-13T09:22:37.785375+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-13 09:22:38.548 [INFO] [orchestrator:9e8396de] 📝 单服务项目，开始构建（代码指纹 950136b7）","timestamp":"2026-10-13T09:22:38.548827+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-13 09:22:38.548 [INFO] [orchestrator:9e8396de] 🔨 开始构建 1 个服务","timestamp":"2026-10-13T09:22:38.548975+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-13 09:22:38.553 [INFO] [orchestrator:9e8396de] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-950136b7","timestamp":"2026-10-13T09:22:38.553179+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:38.553 [INFO] [docker:9e8396de] building docker.fanson.cloud/fanson/meet-pilot:main-950136b7 (with cache)","timestamp":"2026-10-13T09:22:38.553664+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:38.826 [INFO] [docker:9e8396de] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-10-13T09:22:38.826645+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:38.826 [INFO] [docker:9e8396de] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-10-13T09:22:38.826807+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:38.826 [INFO] [docker:9e8396de] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-10-13T09:22:38.826909+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-10-13 09:22:38.828 [ERROR] [docker:9e8396de] 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-13T09:22:38.828870+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-10-13 09:22:38.829 [WARNING] [docker:9e8396de] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-10-13T09:22:38.829304+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:38.829 [INFO] [docker:9e8396de] building docker.fanson.cloud/fanson/meet-pilot:main-950136b7 (native docker build)","timestamp":"2026-10-13T09:22:38.829439+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:39.603 [INFO] [docker:9e8396de] #1 DONE 0.5s","timestamp":"2026-10-13T09:22:39.603657+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:39.900 [INFO] [docker:9e8396de] #2 DONE 0.0s","timestamp":"2026-10-13T09:22:39.900949+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:40.223 [INFO] [docker:9e8396de] #4 DONE 0.6s","timestamp":"2026-10-13T09:22:40.223181+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:41.273 [INFO] [docker:9e8396de] #3 DONE 1.6s","timestamp":"2026-10-13T09:22:41.273500+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:41.792 [INFO] [docker:9e8396de] #5 DONE 0.5s","timestamp":"2026-10-13T09:22:41.792995+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:41.990 [INFO] [docker:9e8396de] #6 DONE 0.0s","timestamp":"2026-10-13T09:22:41.990817+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:41.990 [INFO] [docker:9e8396de] #7 DONE 0.0s","timestamp":"2026-10-13T09:22:41.990966+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:42.345 [INFO] [docker:9e8396de] #8 DONE 0.5s","timestamp":"2026-10-13T09:22:42.345808+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:42.552 [INFO] [docker:9e8396de] #9 CACHED","timestamp":"2026-10-13T09:22:42.552896+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:42.553 [INFO] [docker:9e8396de] #10 CACHED","timestamp":"2026-10-13T09:22:42.553043+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:42.553 [INFO] [docker:9e8396de] #11 CACHED","timestamp":"2026-10-13T09:22:42.553165+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:42.553 [INFO] [docker:9e8396de] #12 CACHED","timestamp":"2026-10-13T09:22:42.553281+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:43.772 [INFO] [docker:9e8396de] #13 DONE 1.4s","timestamp":"2026-10-13T09:22:43.772326+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:52.419 [INFO] [docker:9e8396de] #14 DONE 8.6s","timestamp":"2026-10-13T09:22:52.419185+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:52.976 [INFO] [docker:9e8396de] #15 CACHED","timestamp":"2026-10-13T09:22:52.976866+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:54.531 [INFO] [docker:9e8396de] #16 DONE 1.6s","timestamp":"2026-10-13T09:22:54.531009+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:56.101 [INFO] [docker:9e8396de] #17 DONE 1.5s","timestamp":"2026-10-13T09:22:56.101020+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.067 [INFO] [docker:9e8396de] build success: docker.fanson.cloud/fanson/meet-pilot:main-950136b7","timestamp":"2026-10-13T09:22:57.067528+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.067 [INFO] [docker:9e8396de] pushing docker.fanson.cloud/fanson/meet-pilot:main-950136b7","timestamp":"2026-10-13T09:22:57.067665+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.139 [INFO] [docker:9e8396de] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-13T09:22:57.139485+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.174 [INFO] [docker:9e8396de] bdf2b721aa8e: Preparing","timestamp":"2026-10-13T09:22:57.174416+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.174 [INFO] [docker:9e8396de] 5f70bf18a086: Preparing","timestamp":"2026-10-13T09:22:57.174559+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.174 [INFO] [docker:9e8396de] 71a2618c0925: Preparing","timestamp":"2026-10-13T09:22:57.174666+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.174 [INFO] [docker:9e8396de] 6fc52eaf99f6: Preparing","timestamp":"2026-10-13T09:22:57.174779+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.174 [INFO] [docker:9e8396de] cd4b3dc03178: Preparing","timestamp":"2026-10-13T09:22:57.174881+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.174 [INFO] [docker:9e8396de] b4cfcb8385a8: Preparing","timestamp":"2026-10-13T09:22:57.174978+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.175 [INFO] [docker:9e8396de] 2b730cf18c09: Preparing","timestamp":"2026-10-13T09:22:57.175076+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.175 [INFO] [docker:9e8396de] edeaba958753: Preparing","timestamp":"2026-10-13T09:22:57.175170+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.175 [INFO] [docker:9e8396de] 8bf42db0de72: Preparing","timestamp":"2026-10-13T09:22:57.175267+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.175 [INFO] [docker:9e8396de] 31892cc314cb: Preparing","timestamp":"2026-10-13T09:22:57.175357+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.175 [INFO] [docker:9e8396de] 11936051f93b: Preparing","timestamp":"2026-10-13T09:22:57.175444+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.175 [INFO] [docker:9e8396de] b4cfcb8385a8: Waiting","timestamp":"2026-10-13T09:22:57.175534+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.175 [INFO] [docker:9e8396de] 11936051f93b: Waiting","timestamp":"2026-10-13T09:22:57.175631+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.175 [INFO] [docker:9e8396de] 2b730cf18c09: Waiting","timestamp":"2026-10-13T09:22:57.175727+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.175 [INFO] [docker:9e8396de] edeaba958753: Waiting","timestamp":"2026-10-13T09:22:57.175819+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.175 [INFO] [docker:9e8396de] 31892cc314cb: Waiting","timestamp":"2026-10-13T09:22:57.175916+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.503 [INFO] [docker:9e8396de] 5f70bf18a086: Layer already exists","timestamp":"2026-10-13T09:22:57.503653+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.577 [INFO] [docker:9e8396de] cd4b3dc03178: Layer already exists","timestamp":"2026-10-13T09:22:57.577161+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.577 [INFO] [docker:9e8396de] 71a2618c0925: Layer already exists","timestamp":"2026-10-13T09:22:57.577598+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.578 [INFO] [docker:9e8396de] 6fc52eaf99f6: Layer already exists","timestamp":"2026-10-13T09:22:57.578680+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.591 [INFO] [docker:9e8396de] b4cfcb8385a8: Layer already exists","timestamp":"2026-10-13T09:22:57.591677+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.669 [INFO] [docker:9e8396de] 31892cc314cb: Layer already exists","timestamp":"2026-10-13T09:22:57.669473+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.700 [INFO] [docker:9e8396de] 8bf42db0de72: Layer already exists","timestamp":"2026-10-13T09:22:57.701004+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.701 [INFO] [docker:9e8396de] edeaba958753: Layer already exists","timestamp":"2026-10-13T09:22:57.701161+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.701 [INFO] [docker:9e8396de] 2b730cf18c09: Layer already exists","timestamp":"2026-10-13T09:22:57.701302+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:22:57.791 [INFO] [docker:9e8396de] 11936051f93b: Layer already exists","timestamp":"2026-10-13T09:22:57.791273+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:23:01.517 [INFO] [docker:9e8396de] bdf2b721aa8e: Pushed","timestamp":"2026-10-13T09:23:01.517924+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:23:02.333 [INFO] [docker:9e8396de] main-950136b7: digest: sha256:3f2c7de0e4ed3a9bef63e1543bd27c175104025f2420cb82e2e9f467a9e7ff58 size: 2628","timestamp":"2026-10-13T09:23:02.333229+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:23:02.426 [INFO] [docker:9e8396de] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-10-13T09:23:02.426791+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-10-13 09:23:02.464 [INFO] [docker:9e8396de] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-10-13T09:23:02.464935+08:00"},{"seq":68,"level":"ERROR","component":"docker","message":"[docker] 2026-10-13 09:23:02.466 [ERROR] [docker:9e8396de] 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-13T09:23:02.466388+08:00"},{"seq":69,"level":"WARNING","component":"docker","message":"[docker] 2026-10-13 09:23:02.466 [WARNING] [docker:9e8396de] 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-13T09:23:02.466639+08:00"},{"seq":70,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-13 09:23:02.466 [INFO] [orchestrator:9e8396de] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-950136b7","timestamp":"2026-10-13T09:23:02.466756+08:00"},{"seq":71,"level":"INFO","component":"agent","message":"[agent] 2026-10-13 09:23:02.503 [INFO] [agent:9e8396de] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-950136b7","timestamp":"2026-10-13T09:23:02.503421+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-10-13 09:23:02.509 [INFO] [agent:9e8396de] workspace cleaned","timestamp":"2026-10-13T09:23:02.509451+08:00"}]}