From d4105fc04d08e9cddd71bd00c2177ad4d67ed286 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 11 May 2026 17:47:49 +0800 Subject: [PATCH] feat: add public assets to Docker image and update Dify API config with new talent service agent --- Dockerfile | 2 ++ docker-compose.yml | 3 ++- prisma/dev.db | Bin 73728 -> 69632 bytes prisma/seed.ts | 31 +++++++++++++++++++++++++++++-- 测试/error2.txt | 5 ----- 5 files changed, 33 insertions(+), 8 deletions(-) delete mode 100644 测试/error2.txt diff --git a/Dockerfile b/Dockerfile index b5ac1b1..76f419e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,6 +29,8 @@ COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static # 复制 prisma schema (用于数据库迁移) COPY --from=builder /app/prisma ./prisma +# 复制 public 静态文件 +COPY --from=builder /app/public ./public RUN mkdir -p /app/data && chown nextjs:nodejs /app/data USER nextjs diff --git a/docker-compose.yml b/docker-compose.yml index 8099a25..3fb43f7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,11 +6,12 @@ services: - "3000:3000" extra_hosts: - "host.docker.internal:host-gateway" + - "df.clkeji.com:host-gateway" environment: - DATABASE_URL=file:/app/data/dev.db - NEXTAUTH_SECRET=nextapp-secret-key-2026 - NEXTAUTH_URL=http://localhost:3000 - - DIFY_API_URL=http://host.docker.internal/v1/chat-messages + - DIFY_API_URL=http://df.clkeji.com/v1/chat-messages - DIFY_API_KEY=app-lbe2lglt7taGtZk0dG7pAhbx volumes: - ./prisma/dev.db:/app/data/dev.db diff --git a/prisma/dev.db b/prisma/dev.db index 79f2847923739f378402341474ff4933d8d14749..5376838e291e777e25ff128c95a9a46dbb7f87d7 100644 GIT binary patch delta 4501 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 diff --git a/prisma/seed.ts b/prisma/seed.ts index f1b8a86..7df2052 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -115,8 +115,8 @@ async function main() { status: "active", isFeatured: true, featuredOrder: 1, - difyApiUrl: "https://api.dify.ai/v1", - difyApiKey: "app-demo-key-123456", + difyApiUrl: "http://host.docker.internal/v1", + difyApiKey: "app-lbe2lglt7taGtZk0dG7pAhbx", }, }), prisma.agent.upsert({ @@ -218,6 +218,33 @@ async function main() { status: "active", }, }), + prisma.agent.upsert({ + where: { slug: "talent-service" }, + update: {}, + create: { + name: "人才服务智能体", + slug: "talent-service", + description: "提供人才政策查询、招聘信息匹配、职业规划咨询、人才补贴申请等一站式人才服务。", + icon: "👥", + categoryId: categories[6].id, + features: "人才政策查询, 招聘信息匹配, 职业规划, 人才补贴申请", + hotQuestions: JSON.stringify([ + "淮安市有哪些人才引进政策?", + "如何申请人才补贴?", + "高层次人才认定标准是什么?", + "人才公寓如何申请?", + ]), + quickQuestions: JSON.stringify([ + "人才政策查询", + "人才补贴申请", + "招聘信息", + ]), + usageCount: 200, + status: "active", + isFeatured: true, + featuredOrder: 4, + }, + }), ]) console.log("Created agents:", agents.map(a => a.name).join(", ")) diff --git a/测试/error2.txt b/测试/error2.txt deleted file mode 100644 index 2852410..0000000 --- a/测试/error2.txt +++ /dev/null @@ -1,5 +0,0 @@ -Chat API error: TypeError: fetch failed - at async c (.next/server/app/api/chat/route.js:1:1010) { - [cause]: [Error [ConnectTimeoutError]: Connect Timeout Error (attempted address: df.clkeji.com:80, timeout: 10000ms)] { - code: 'UND_ERR_CONNECT_TIMEOUT' - } 该服务宿主机可通过localhost访问,怎么修改地址,能访问到该服务 \ No newline at end of file