{"job_id":"773dcfc7-387d-4f7e-b8a6-7ee3e2498595","filters":{"level":null,"component":null},"total":75,"logs":[{"seq":1,"level":"INFO","component":"agent","message":"[agent] 2026-10-09 15:56:43.937 [INFO] [agent:773dcfc7] 🚀 CI 流水线启动","timestamp":"2026-10-09T15:56:43.937663+08:00"},{"seq":2,"level":"INFO","component":"git","message":"[git] 2026-10-09 15:56:43.937 [INFO] [git:773dcfc7] cloning http://git.fanson.cloud/customer-project/jingneng/jn-isp-api.git -> /app/data/workspace/773dcfc7-387d-4f7e-b8a6-7ee3e2498595 (branch=new-develop)","timestamp":"2026-10-09T15:56:43.937971+08:00"},{"seq":3,"level":"INFO","component":"git","message":"[git] 2026-10-09 15:56:44.751 [INFO] [git:773dcfc7] Cloning into '/app/data/workspace/773dcfc7-387d-4f7e-b8a6-7ee3e2498595'...","timestamp":"2026-10-09T15:56:44.751109+08:00"},{"seq":4,"level":"INFO","component":"git","message":"[git] 2026-10-09 15:56:44.751 [INFO] [git:773dcfc7] git clone success: /app/data/workspace/773dcfc7-387d-4f7e-b8a6-7ee3e2498595","timestamp":"2026-10-09T15:56:44.751219+08:00"},{"seq":5,"level":"INFO","component":"agent","message":"[agent] 2026-10-09 15:56:44.751 [INFO] [agent:773dcfc7] 📦 代码已克隆到 /app/data/workspace/773dcfc7-387d-4f7e-b8a6-7ee3e2498595","timestamp":"2026-10-09T15:56:44.751527+08:00"},{"seq":6,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 15:56:44.752 [INFO] [orchestrator:773dcfc7] 📋 发现 .ci.yml 配置文件，使用确定性构建流程","timestamp":"2026-10-09T15:56:44.752429+08:00"},{"seq":7,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 15:56:45.361 [INFO] [orchestrator:773dcfc7] 📝 检测到变更的目录: fanson-admin, fanson-admin/src, fanson-common, fanson-common/src, fanson-quartz, fanson-quartz/src, fanson-system, fanson-system/src, sql, sql/V2_14_manual_bid_appointment.sql","timestamp":"2026-10-09T15:56:45.361776+08:00"},{"seq":8,"level":"INFO","component":"git","message":"[git] 2026-10-09 15:56:45.364 [INFO] [git:773dcfc7] 目录 fanson-admin 代码指纹: 7aee1a1","timestamp":"2026-10-09T15:56:45.364750+08:00"},{"seq":9,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 15:56:46.008 [INFO] [orchestrator:773dcfc7] 📝 单服务项目，开始构建（代码指纹 7aee1a1）","timestamp":"2026-10-09T15:56:46.008328+08:00"},{"seq":10,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 15:56:46.008 [INFO] [orchestrator:773dcfc7] 🔨 开始构建 1 个服务","timestamp":"2026-10-09T15:56:46.008449+08:00"},{"seq":11,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 15:56:46.012 [INFO] [orchestrator:773dcfc7] 🔨 构建服务: jingneng/jn-isp-api-fanson-admin-new → 镜像标签 jingneng/jn-isp-api-fanson-admin-new:new-develop-7aee1a1","timestamp":"2026-10-09T15:56:46.012294+08:00"},{"seq":12,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 15:56:46.012 [INFO] [orchestrator:773dcfc7] 已自动注入 -pl fanson-admin -am: mvn -pl fanson-admin -am clean package -DskipTests","timestamp":"2026-10-09T15:56:46.012422+08:00"},{"seq":13,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:46.012 [INFO] [docker:773dcfc7] building docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new:new-develop-7aee1a1 (with cache)","timestamp":"2026-10-09T15:56:46.012940+08:00"},{"seq":14,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:46.278 [INFO] [docker:773dcfc7] ERROR: failed to build: Cache export is not supported for the docker driver.","timestamp":"2026-10-09T15:56:46.278816+08:00"},{"seq":15,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:46.278 [INFO] [docker:773dcfc7] Switch to a different driver, or turn on the containerd image store, and try again.","timestamp":"2026-10-09T15:56:46.278954+08:00"},{"seq":16,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:46.279 [INFO] [docker:773dcfc7] Learn more at https://docs.docker.com/go/build-cache-backends/","timestamp":"2026-10-09T15:56:46.279048+08:00"},{"seq":17,"level":"ERROR","component":"docker","message":"[docker] 2026-10-09 15:56:46.281 [ERROR] [docker:773dcfc7] 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-09T15:56:46.281090+08:00"},{"seq":18,"level":"WARNING","component":"docker","message":"[docker] 2026-10-09 15:56:46.281 [WARNING] [docker:773dcfc7] buildx 不可用，已切换为原生 docker build (之后本 job 不会再重试 buildx)","timestamp":"2026-10-09T15:56:46.281540+08:00"},{"seq":19,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:46.281 [INFO] [docker:773dcfc7] building docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new:new-develop-7aee1a1 (native docker build)","timestamp":"2026-10-09T15:56:46.281694+08:00"},{"seq":20,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:47.000 [INFO] [docker:773dcfc7] #1 DONE 0.5s","timestamp":"2026-10-09T15:56:47.000345+08:00"},{"seq":21,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:47.286 [INFO] [docker:773dcfc7] #2 DONE 0.0s","timestamp":"2026-10-09T15:56:47.286723+08:00"},{"seq":22,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:47.641 [INFO] [docker:773dcfc7] #4 DONE 0.6s","timestamp":"2026-10-09T15:56:47.641890+08:00"},{"seq":23,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:48.448 [INFO] [docker:773dcfc7] #3 DONE 1.4s","timestamp":"2026-10-09T15:56:48.448986+08:00"},{"seq":24,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:48.880 [INFO] [docker:773dcfc7] #5 DONE 0.4s","timestamp":"2026-10-09T15:56:48.880009+08:00"},{"seq":25,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:49.066 [INFO] [docker:773dcfc7] #6 DONE 0.0s","timestamp":"2026-10-09T15:56:49.066691+08:00"},{"seq":26,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:49.066 [INFO] [docker:773dcfc7] #7 DONE 0.0s","timestamp":"2026-10-09T15:56:49.066821+08:00"},{"seq":27,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:49.532 [INFO] [docker:773dcfc7] #8 DONE 0.6s","timestamp":"2026-10-09T15:56:49.532484+08:00"},{"seq":28,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:49.730 [INFO] [docker:773dcfc7] #9 CACHED","timestamp":"2026-10-09T15:56:49.730722+08:00"},{"seq":29,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:49.730 [INFO] [docker:773dcfc7] #10 CACHED","timestamp":"2026-10-09T15:56:49.730852+08:00"},{"seq":30,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:49.730 [INFO] [docker:773dcfc7] #11 CACHED","timestamp":"2026-10-09T15:56:49.730957+08:00"},{"seq":31,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:49.731 [INFO] [docker:773dcfc7] #12 CACHED","timestamp":"2026-10-09T15:56:49.731055+08:00"},{"seq":32,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:56:51.113 [INFO] [docker:773dcfc7] #13 DONE 1.5s","timestamp":"2026-10-09T15:56:51.113738+08:00"},{"seq":33,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:00.600 [INFO] [docker:773dcfc7] #14 DONE 9.4s","timestamp":"2026-10-09T15:57:00.600749+08:00"},{"seq":34,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:01.102 [INFO] [docker:773dcfc7] #15 CACHED","timestamp":"2026-10-09T15:57:01.102589+08:00"},{"seq":35,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:02.823 [INFO] [docker:773dcfc7] #16 DONE 1.9s","timestamp":"2026-10-09T15:57:02.823337+08:00"},{"seq":36,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:04.537 [INFO] [docker:773dcfc7] #17 DONE 1.6s","timestamp":"2026-10-09T15:57:04.537161+08:00"},{"seq":37,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.547 [INFO] [docker:773dcfc7] build success: docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new:new-develop-7aee1a1","timestamp":"2026-10-09T15:57:05.547203+08:00"},{"seq":38,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.547 [INFO] [docker:773dcfc7] pushing docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new:new-develop-7aee1a1","timestamp":"2026-10-09T15:57:05.547311+08:00"},{"seq":39,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.583 [INFO] [docker:773dcfc7] The push refers to repository [docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new]","timestamp":"2026-10-09T15:57:05.583341+08:00"},{"seq":40,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] db455dc8b991: Preparing","timestamp":"2026-10-09T15:57:05.624104+08:00"},{"seq":41,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] 5f70bf18a086: Preparing","timestamp":"2026-10-09T15:57:05.624235+08:00"},{"seq":42,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] 71a2618c0925: Preparing","timestamp":"2026-10-09T15:57:05.624326+08:00"},{"seq":43,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] 6fc52eaf99f6: Preparing","timestamp":"2026-10-09T15:57:05.624410+08:00"},{"seq":44,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] cd4b3dc03178: Preparing","timestamp":"2026-10-09T15:57:05.624494+08:00"},{"seq":45,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] b4cfcb8385a8: Preparing","timestamp":"2026-10-09T15:57:05.624574+08:00"},{"seq":46,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] 2b730cf18c09: Preparing","timestamp":"2026-10-09T15:57:05.624655+08:00"},{"seq":47,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] edeaba958753: Preparing","timestamp":"2026-10-09T15:57:05.624745+08:00"},{"seq":48,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] 8bf42db0de72: Preparing","timestamp":"2026-10-09T15:57:05.624824+08:00"},{"seq":49,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] 31892cc314cb: Preparing","timestamp":"2026-10-09T15:57:05.624904+08:00"},{"seq":50,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.624 [INFO] [docker:773dcfc7] 11936051f93b: Preparing","timestamp":"2026-10-09T15:57:05.624982+08:00"},{"seq":51,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.625 [INFO] [docker:773dcfc7] 31892cc314cb: Waiting","timestamp":"2026-10-09T15:57:05.625059+08:00"},{"seq":52,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.625 [INFO] [docker:773dcfc7] 8bf42db0de72: Waiting","timestamp":"2026-10-09T15:57:05.625137+08:00"},{"seq":53,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.625 [INFO] [docker:773dcfc7] 11936051f93b: Waiting","timestamp":"2026-10-09T15:57:05.625215+08:00"},{"seq":54,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.625 [INFO] [docker:773dcfc7] b4cfcb8385a8: Waiting","timestamp":"2026-10-09T15:57:05.625298+08:00"},{"seq":55,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.625 [INFO] [docker:773dcfc7] edeaba958753: Waiting","timestamp":"2026-10-09T15:57:05.625376+08:00"},{"seq":56,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.625 [INFO] [docker:773dcfc7] 2b730cf18c09: Waiting","timestamp":"2026-10-09T15:57:05.625455+08:00"},{"seq":57,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.915 [INFO] [docker:773dcfc7] 6fc52eaf99f6: Layer already exists","timestamp":"2026-10-09T15:57:05.915301+08:00"},{"seq":58,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.961 [INFO] [docker:773dcfc7] 5f70bf18a086: Layer already exists","timestamp":"2026-10-09T15:57:05.961471+08:00"},{"seq":59,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.961 [INFO] [docker:773dcfc7] 71a2618c0925: Layer already exists","timestamp":"2026-10-09T15:57:05.961912+08:00"},{"seq":60,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:05.962 [INFO] [docker:773dcfc7] cd4b3dc03178: Layer already exists","timestamp":"2026-10-09T15:57:05.962298+08:00"},{"seq":61,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:06.016 [INFO] [docker:773dcfc7] b4cfcb8385a8: Layer already exists","timestamp":"2026-10-09T15:57:06.016088+08:00"},{"seq":62,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:06.025 [INFO] [docker:773dcfc7] edeaba958753: Layer already exists","timestamp":"2026-10-09T15:57:06.025293+08:00"},{"seq":63,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:06.025 [INFO] [docker:773dcfc7] 8bf42db0de72: Layer already exists","timestamp":"2026-10-09T15:57:06.025411+08:00"},{"seq":64,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:06.026 [INFO] [docker:773dcfc7] 2b730cf18c09: Layer already exists","timestamp":"2026-10-09T15:57:06.026294+08:00"},{"seq":65,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:06.127 [INFO] [docker:773dcfc7] 31892cc314cb: Layer already exists","timestamp":"2026-10-09T15:57:06.127157+08:00"},{"seq":66,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:06.146 [INFO] [docker:773dcfc7] 11936051f93b: Layer already exists","timestamp":"2026-10-09T15:57:06.146190+08:00"},{"seq":67,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:11.697 [INFO] [docker:773dcfc7] db455dc8b991: Pushed","timestamp":"2026-10-09T15:57:11.697592+08:00"},{"seq":68,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:12.389 [INFO] [docker:773dcfc7] new-develop-7aee1a1: digest: sha256:5dc532a0a7872eb65838092ddacc55c12f6a3bc81f53a463c20bccbc3de8cfa3 size: 2628","timestamp":"2026-10-09T15:57:12.389864+08:00"},{"seq":69,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:12.468 [INFO] [docker:773dcfc7] The push refers to repository [docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new]","timestamp":"2026-10-09T15:57:12.468145+08:00"},{"seq":70,"level":"INFO","component":"docker","message":"[docker] 2026-10-09 15:57:12.501 [INFO] [docker:773dcfc7] tag does not exist: docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new:cache","timestamp":"2026-10-09T15:57:12.501968+08:00"},{"seq":71,"level":"ERROR","component":"docker","message":"[docker] 2026-10-09 15:57:12.502 [ERROR] [docker:773dcfc7] docker command failed (exit=1): The push refers to repository [docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new]\ntag does not exist: docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new:cache","timestamp":"2026-10-09T15:57:12.502809+08:00"},{"seq":72,"level":"WARNING","component":"docker","message":"[docker] 2026-10-09 15:57:12.503 [WARNING] [docker:773dcfc7] cache push skipped: The push refers to repository [docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new]\ntag does not exist: docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new:cache","timestamp":"2026-10-09T15:57:12.503154+08:00"},{"seq":73,"level":"INFO","component":"orchestrator","message":"[orchestrator] 2026-10-09 15:57:12.503 [INFO] [orchestrator:773dcfc7] ✅ 服务构建完成: docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new:new-develop-7aee1a1","timestamp":"2026-10-09T15:57:12.503271+08:00"},{"seq":74,"level":"INFO","component":"agent","message":"[agent] 2026-10-09 15:57:12.539 [INFO] [agent:773dcfc7] ✅ 构建完成: 成功构建 1 个镜像: docker.fanson.cloud/jingneng/jn-isp-api-fanson-admin-new:new-develop-7aee1a1","timestamp":"2026-10-09T15:57:12.539848+08:00"},{"seq":75,"level":"INFO","component":"agent","message":"[agent] 2026-10-09 15:57:12.563 [INFO] [agent:773dcfc7] workspace cleaned","timestamp":"2026-10-09T15:57:12.563385+08:00"}]}