{"job_id":"15917410-2238-4c45-a857-992297fd8160","filters":{"level":null,"component":null},"total":72,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-09-24 16:01:07.985 [INFO] [agent:15917410] 🚀 CI 流水线启动","timestamp":"2026-09-24T16:01:07.985686+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-09-24 16:01:07.986 [INFO] [git:15917410] cloning http://git.fanson.cloud/fanson/fs-talk/meet-pilot.git -> /app/data/workspace/15917410-2238-4c45-a857-992297fd8160 (branch=main)","timestamp":"2026-09-24T16:01:07.986013+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-09-24 16:01:08.489 [INFO] [git:15917410] Cloning into '/app/data/workspace/15917410-2238-4c45-a857-992297fd8160'...","timestamp":"2026-09-24T16:01:08.489895+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-09-24 16:01:08.489 [INFO] [git:15917410] git clone success: /app/data/workspace/15917410-2238-4c45-a857-992297fd8160","timestamp":"2026-09-24T16:01:08.490000+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-09-24 16:01:08.490 [INFO] [agent:15917410] 📦 代码已克隆到 /app/data/workspace/15917410-2238-4c45-a857-992297fd8160","timestamp":"2026-09-24T16:01:08.490297+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-24 16:01:08.491 [INFO] [orchestrator:15917410] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-09-24T16:01:08.491216+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-24 16:01:09.021 [INFO] [orchestrator:15917410] 📝 检测到变更的目录: src, src/test","timestamp":"2026-09-24T16:01:09.021999+08:00"},{"seq":8,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-24 16:01:09.652 [INFO] [orchestrator:15917410] 📝 单服务项目，开始构建（代码指纹 08682ca5）","timestamp":"2026-09-24T16:01:09.652822+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-24 16:01:09.652 [INFO] [orchestrator:15917410] 🔨 开始构建 1 个服务","timestamp":"2026-09-24T16:01:09.652942+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-24 16:01:09.656 [INFO] [orchestrator:15917410] 🔨 构建服务: fanson/meet-pilot → 镜像标签 fanson/meet-pilot:main-08682ca5","timestamp":"2026-09-24T16:01:09.656560+08:00"},{"seq":11,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:09.657 [INFO] [docker:15917410] building docker.fanson.cloud/fanson/meet-pilot:main-08682ca5 (with cache)","timestamp":"2026-09-24T16:01:09.657033+08:00"},{"seq":12,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:09.902 [INFO] [docker:15917410] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-09-24T16:01:09.902230+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:09.902 [INFO] [docker:15917410] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-09-24T16:01:09.902375+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:09.902 [INFO] [docker:15917410] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-09-24T16:01:09.902482+08:00"},{"seq":15,"level":"ERROR","component":"docker","message":"[docker] 2026-09-24 16:01:09.904 [ERROR] [docker:15917410] 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-24T16:01:09.904571+08:00"},{"seq":16,"level":"WARNING","component":"docker","message":"[docker] 2026-09-24 16:01:09.904 [WARNING] [docker:15917410] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-09-24T16:01:09.904915+08:00"},{"seq":17,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:09.905 [INFO] [docker:15917410] building docker.fanson.cloud/fanson/meet-pilot:main-08682ca5 (native docker build)","timestamp":"2026-09-24T16:01:09.905047+08:00"},{"seq":18,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:10.568 [INFO] [docker:15917410] #1 DONE 0.4s","timestamp":"2026-09-24T16:01:10.568437+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:10.966 [INFO] [docker:15917410] #3 DONE 0.4s","timestamp":"2026-09-24T16:01:10.966816+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:11.309 [INFO] [docker:15917410] #2 DONE 0.7s","timestamp":"2026-09-24T16:01:11.309486+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:11.795 [INFO] [docker:15917410] #4 DONE 0.5s","timestamp":"2026-09-24T16:01:11.795749+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:11.993 [INFO] [docker:15917410] #5 DONE 0.0s","timestamp":"2026-09-24T16:01:11.993401+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:11.993 [INFO] [docker:15917410] #6 DONE 0.0s","timestamp":"2026-09-24T16:01:11.993524+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:12.448 [INFO] [docker:15917410] #7 DONE 0.6s","timestamp":"2026-09-24T16:01:12.448108+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:12.655 [INFO] [docker:15917410] #8 CACHED","timestamp":"2026-09-24T16:01:12.655046+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:12.655 [INFO] [docker:15917410] #9 CACHED","timestamp":"2026-09-24T16:01:12.655167+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:12.655 [INFO] [docker:15917410] #10 CACHED","timestamp":"2026-09-24T16:01:12.655268+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:12.655 [INFO] [docker:15917410] #11 CACHED","timestamp":"2026-09-24T16:01:12.655365+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:13.697 [INFO] [docker:15917410] #12 DONE 1.2s","timestamp":"2026-09-24T16:01:13.697678+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:21.249 [INFO] [docker:15917410] #13 DONE 7.5s","timestamp":"2026-09-24T16:01:21.249842+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:21.598 [INFO] [docker:15917410] #14 CACHED","timestamp":"2026-09-24T16:01:21.598964+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:23.129 [INFO] [docker:15917410] #15 DONE 1.5s","timestamp":"2026-09-24T16:01:23.129566+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:24.721 [INFO] [docker:15917410] #16 DONE 1.5s","timestamp":"2026-09-24T16:01:24.721729+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.620 [INFO] [docker:15917410] build success: docker.fanson.cloud/fanson/meet-pilot:main-08682ca5","timestamp":"2026-09-24T16:01:25.620893+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.620 [INFO] [docker:15917410] pushing docker.fanson.cloud/fanson/meet-pilot:main-08682ca5","timestamp":"2026-09-24T16:01:25.621002+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.658 [INFO] [docker:15917410] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-09-24T16:01:25.658251+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] e9ad6bfc33ba: Preparing","timestamp":"2026-09-24T16:01:25.690087+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] 5f70bf18a086: Preparing","timestamp":"2026-09-24T16:01:25.690190+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] 71a2618c0925: Preparing","timestamp":"2026-09-24T16:01:25.690278+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] 6fc52eaf99f6: Preparing","timestamp":"2026-09-24T16:01:25.690363+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] cd4b3dc03178: Preparing","timestamp":"2026-09-24T16:01:25.690445+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] b4cfcb8385a8: Preparing","timestamp":"2026-09-24T16:01:25.690525+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] 2b730cf18c09: Preparing","timestamp":"2026-09-24T16:01:25.690604+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] edeaba958753: Preparing","timestamp":"2026-09-24T16:01:25.690684+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] 8bf42db0de72: Preparing","timestamp":"2026-09-24T16:01:25.690775+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] 31892cc314cb: Preparing","timestamp":"2026-09-24T16:01:25.690856+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.690 [INFO] [docker:15917410] 11936051f93b: Preparing","timestamp":"2026-09-24T16:01:25.690936+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.691 [INFO] [docker:15917410] b4cfcb8385a8: Waiting","timestamp":"2026-09-24T16:01:25.691022+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.691 [INFO] [docker:15917410] edeaba958753: Waiting","timestamp":"2026-09-24T16:01:25.691101+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.691 [INFO] [docker:15917410] 2b730cf18c09: Waiting","timestamp":"2026-09-24T16:01:25.691179+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.691 [INFO] [docker:15917410] 8bf42db0de72: Waiting","timestamp":"2026-09-24T16:01:25.691258+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.691 [INFO] [docker:15917410] 31892cc314cb: Waiting","timestamp":"2026-09-24T16:01:25.691338+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.691 [INFO] [docker:15917410] 11936051f93b: Waiting","timestamp":"2026-09-24T16:01:25.691417+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:25.981 [INFO] [docker:15917410] 5f70bf18a086: Layer already exists","timestamp":"2026-09-24T16:01:25.981643+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:26.051 [INFO] [docker:15917410] 71a2618c0925: Layer already exists","timestamp":"2026-09-24T16:01:26.051834+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:26.053 [INFO] [docker:15917410] cd4b3dc03178: Layer already exists","timestamp":"2026-09-24T16:01:26.053428+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:26.053 [INFO] [docker:15917410] 6fc52eaf99f6: Layer already exists","timestamp":"2026-09-24T16:01:26.053595+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:26.103 [INFO] [docker:15917410] b4cfcb8385a8: Layer already exists","timestamp":"2026-09-24T16:01:26.103743+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:26.159 [INFO] [docker:15917410] 8bf42db0de72: Layer already exists","timestamp":"2026-09-24T16:01:26.159445+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:26.159 [INFO] [docker:15917410] edeaba958753: Layer already exists","timestamp":"2026-09-24T16:01:26.159601+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:26.159 [INFO] [docker:15917410] 2b730cf18c09: Layer already exists","timestamp":"2026-09-24T16:01:26.159968+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:26.186 [INFO] [docker:15917410] 31892cc314cb: Layer already exists","timestamp":"2026-09-24T16:01:26.186925+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:26.243 [INFO] [docker:15917410] 11936051f93b: Layer already exists","timestamp":"2026-09-24T16:01:26.243609+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:30.470 [INFO] [docker:15917410] e9ad6bfc33ba: Pushed","timestamp":"2026-09-24T16:01:30.470597+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:31.152 [INFO] [docker:15917410] main-08682ca5: digest: sha256:9297a9d5f94675ba6dbb0123153ca5f233dfea6f7198a20db514b1b35aaae59e size: 2628","timestamp":"2026-09-24T16:01:31.152990+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:31.235 [INFO] [docker:15917410] The push refers to repository [docker.fanson.cloud/fanson/meet-pilot]","timestamp":"2026-09-24T16:01:31.235975+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-09-24 16:01:31.266 [INFO] [docker:15917410] tag does not exist: docker.fanson.cloud/fanson/meet-pilot:cache","timestamp":"2026-09-24T16:01:31.266363+08:00"},{"seq":68,"level":"ERROR","component":"docker","message":"[docker] 2026-09-24 16:01:31.267 [ERROR] [docker:15917410] 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-24T16:01:31.267323+08:00"},{"seq":69,"level":"WARNING","component":"docker","message":"[docker] 2026-09-24 16:01:31.267 [WARNING] [docker:15917410] 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-24T16:01:31.267692+08:00"},{"seq":70,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-09-24 16:01:31.267 [INFO] [orchestrator:15917410] ✅ 服务构建完成: docker.fanson.cloud/fanson/meet-pilot:main-08682ca5","timestamp":"2026-09-24T16:01:31.267801+08:00"},{"seq":71,"level":"INFO","component":"agent","message":"[agent] 2026-09-24 16:01:31.324 [INFO] [agent:15917410] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/fanson/meet-pilot:main-08682ca5","timestamp":"2026-09-24T16:01:31.324417+08:00"},{"seq":72,"level":"INFO","component":"agent","message":"[agent] 2026-09-24 16:01:31.329 [INFO] [agent:15917410] workspace cleaned","timestamp":"2026-09-24T16:01:31.329159+08:00"}]}