From 1f814482bf6d049283a011c0e246f41ee65d2854 Mon Sep 17 00:00:00 2001 From: jiangxucong Date: Fri, 7 Mar 2025 13:51:49 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DigitalHumanWeb/Dockerfile | 52 ++++++++++++++++--- .../src/app/(main)/_layout/Desktop.tsx | 6 +-- DigitalHumanWeb/src/config/db.ts | 2 +- 3 files changed, 48 insertions(+), 12 deletions(-) diff --git a/DigitalHumanWeb/Dockerfile b/DigitalHumanWeb/Dockerfile index a8ee26a..a1f37c5 100644 --- a/DigitalHumanWeb/Dockerfile +++ b/DigitalHumanWeb/Dockerfile @@ -31,7 +31,11 @@ FROM base AS builder ARG USE_CN_MIRROR -ENV NEXT_PUBLIC_BASE_PATH="" +ENV NEXT_PUBLIC_SERVICE_MODE="server" \ + APP_URL="http://192.168.15.199:3010" \ + DATABASE_DRIVER="node" \ + DATABASE_URL="postgres://postgres:uWNZugjBqixf8dxC@localhost:5432/lobechat" \ + KEY_VAULTS_SECRET="Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ=" # Sentry ENV NEXT_PUBLIC_SENTRY_DSN="" \ @@ -70,9 +74,9 @@ RUN \ && corepack use $(sed -n 's/.*"packageManager": "\(.*\)".*/\1/p' package.json) \ # Install the dependencies && pnpm i \ - # Add sharp dependencies + # Add sharp and db migration dependencies && mkdir -p /deps \ - && pnpm add sharp --prefix /deps + && pnpm add sharp pg drizzle-orm --prefix /deps COPY . . @@ -88,7 +92,16 @@ COPY --from=builder /app/public /app/public # https://nextjs.org/docs/advanced-features/output-file-tracing COPY --from=builder /app/.next/standalone /app/ COPY --from=builder /app/.next/static /app/.next/static + +# copy dependencies COPY --from=builder /deps/node_modules/.pnpm /app/node_modules/.pnpm +COPY --from=builder /deps/node_modules/pg /app/node_modules/pg +COPY --from=builder /deps/node_modules/drizzle-orm /app/node_modules/drizzle-orm + +# Copy database migrations +COPY --from=builder /app/src/database/server/migrations /app/migrations +COPY --from=builder /app/scripts/migrateServerDB/docker.cjs /app/docker.cjs +COPY --from=builder /app/scripts/migrateServerDB/errorHint.js /app/errorHint.js ## Production image, copy all the files and run next FROM base @@ -100,17 +113,36 @@ ENV NODE_ENV="production" \ NODE_TLS_REJECT_UNAUTHORIZED="" # set hostname to localhost -ENV HOSTNAME="0.0.0.0" \ - PORT="3210" +ENV HOSTNAME="192.168.15.199" \ + PORT="3010" # General Variables ENV ACCESS_CODE="" \ + APP_URL="http://192.168.15.199:3010" \ API_KEY_SELECT_MODE="" \ DEFAULT_AGENT_CONFIG="" \ SYSTEM_AGENT="" \ FEATURE_FLAGS="" \ PROXY_URL="" +# Database +ENV KEY_VAULTS_SECRET="Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ=" \ + DATABASE_DRIVER="node" \ + DATABASE_URL="postgresql://postgres:uWNZugjBqixf8dxC@postgresql:5432/lobechat" + +# Next Auth +ENV NEXT_AUTH_SECRET="NX2kaPE923dt6BL2U8e9oSre5RfoT7hg" \ + NEXT_AUTH_SSO_PROVIDERS="casdoor" \ + NEXTAUTH_URL="http://192.168.15.199:3010/api/auth" + +# S3 +ENV NEXT_PUBLIC_S3_DOMAIN="" \ + S3_PUBLIC_DOMAIN="http://192.168.15.199:9000" \ + S3_ACCESS_KEY_ID="soaucnP8Bip0TDdUjxng" \ + S3_BUCKET="casdoor" \ + S3_ENDPOINT="http://192.168.15.199:9000" \ + S3_SECRET_ACCESS_KEY="ZPUzvY34umfcfxvWKSv0P00vczVMB6YmgJS5J9eO" + # Model Variables ENV \ # AI21 @@ -168,7 +200,7 @@ ENV \ # 01.AI ZEROONE_API_KEY="" ZEROONE_MODEL_LIST="" \ # Zhipu - ZHIPU_API_KEY="" ZHIPU_MODEL_LIST="" + ZHIPU_API_KEY="" USER nextjs @@ -205,5 +237,9 @@ CMD \ "$protocol $host $port" \ > "/etc/proxychains4.conf"; \ fi; \ - # Run the server - ${PROXYCHAINS} node "/app/server.js"; + # Run migration + node "/app/docker.cjs"; \ + if [ "$?" -eq "0" ]; then \ + # Run the server + ${PROXYCHAINS} node "/app/server.js"; \ + fi; diff --git a/DigitalHumanWeb/src/app/(main)/_layout/Desktop.tsx b/DigitalHumanWeb/src/app/(main)/_layout/Desktop.tsx index 9e0d185..6b62445 100644 --- a/DigitalHumanWeb/src/app/(main)/_layout/Desktop.tsx +++ b/DigitalHumanWeb/src/app/(main)/_layout/Desktop.tsx @@ -9,7 +9,8 @@ import { usePlatform } from '@/hooks/usePlatform'; import { featureFlagsSelectors, useServerConfigStore } from '@/store/serverConfig'; import { UserOutlined } from '@ant-design/icons'; import { LayoutProps } from './type'; -import { Divider, Avatar } from "antd"; +import { Divider } from "antd"; +import Avatar from './Avatar'; const title:{[key: string]: string } = { "/chat": '会话', @@ -95,8 +96,7 @@ const Layout = memo(({ children, nav }) => { {title[pathName]}
- } style={{ backgroundColor: '#90ACFF' }}/> - 张末末 +
{children} diff --git a/DigitalHumanWeb/src/config/db.ts b/DigitalHumanWeb/src/config/db.ts index fd31730..66cf29e 100644 --- a/DigitalHumanWeb/src/config/db.ts +++ b/DigitalHumanWeb/src/config/db.ts @@ -10,7 +10,7 @@ export const getServerDBConfig = () => { runtimeEnv: { DATABASE_DRIVER: process.env.DATABASE_DRIVER || 'neon', DATABASE_TEST_URL: process.env.DATABASE_TEST_URL, - DATABASE_URL: 'jdbc:postgresql://192.168.15.199:5432/lobechat', + DATABASE_URL: process.env.DATABASE_URL, DISABLE_REMOVE_GLOBAL_FILE: process.env.DISABLE_REMOVE_GLOBAL_FILE === '1',