diff --git a/DigitalHumanWeb/Dockerfile b/DigitalHumanWeb/Dockerfile index a8ee26a..d0fac4b 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:3210" \ + DATABASE_DRIVER="node" \ + DATABASE_URL="postgresql://postgres:uWNZugjBqixf8dxC@postgresql:5432/lobechat" \ + KEY_VAULTS_SECRET="Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ=" # Sentry ENV NEXT_PUBLIC_SENTRY_DSN="" \ @@ -67,12 +71,12 @@ RUN \ # Enable corepack && corepack enable \ # Use pnpm for corepack - && corepack use $(sed -n 's/.*"packageManager": "\(.*\)".*/\1/p' package.json) \ + && corepack use pnpm \ # 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" \ +ENV HOSTNAME="192.168.15.199" \ PORT="3210" # General Variables ENV ACCESS_CODE="" \ + APP_URL="http://192.168.15.199:3210" \ 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:3210/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/Dockerfile.database b/DigitalHumanWeb/Dockerfile.database index 6088404..d0fac4b 100644 --- a/DigitalHumanWeb/Dockerfile.database +++ b/DigitalHumanWeb/Dockerfile.database @@ -1,5 +1,5 @@ ## Base image for all the stages -FROM node:20-slim AS base +FROM node:22-slim AS base ARG USE_CN_MIRROR