From 9e88a8730212b9956b4abb4e0a4be7bf19497c60 Mon Sep 17 00:00:00 2001 From: LovelyGuYiMeng <76251800+LovelyGuYiMeng@users.noreply.github.com> Date: Sun, 29 Sep 2024 17:31:32 +0800 Subject: [PATCH] Delete Dockerfile --- Dockerfile | 199 ----------------------------------------------------- 1 file changed, 199 deletions(-) delete mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 2a9b152108864..0000000000000 --- a/Dockerfile +++ /dev/null @@ -1,199 +0,0 @@ -## Base image for all building stages -FROM node:20-slim AS base - -ARG USE_CN_MIRROR - -ENV DEBIAN_FRONTEND="noninteractive" - -RUN \ - # If you want to build docker in China, build with --build-arg USE_CN_MIRROR=true - if [ "${USE_CN_MIRROR:-false}" = "true" ]; then \ - sed -i "s/deb.debian.org/mirrors.ustc.edu.cn/g" "/etc/apt/sources.list.d/debian.sources"; \ - fi \ - # Add required package - && apt update \ - && apt install ca-certificates proxychains-ng -qy \ - # Prepare required package to distroless - && mkdir -p /distroless/bin /distroless/etc /distroless/etc/ssl/certs /distroless/lib \ - # Copy proxychains to distroless - && cp /usr/lib/$(arch)-linux-gnu/libproxychains.so.4 /distroless/lib/libproxychains.so.4 \ - && cp /usr/lib/$(arch)-linux-gnu/libdl.so.2 /distroless/lib/libdl.so.2 \ - && cp /usr/bin/proxychains4 /distroless/bin/proxychains \ - && cp /etc/proxychains4.conf /distroless/etc/proxychains4.conf \ - # Copy node to distroless - && cp /usr/lib/$(arch)-linux-gnu/libstdc++.so.6 /distroless/lib/libstdc++.so.6 \ - && cp /usr/lib/$(arch)-linux-gnu/libgcc_s.so.1 /distroless/lib/libgcc_s.so.1 \ - && cp /usr/local/bin/node /distroless/bin/node \ - # Copy CA certificates to distroless - && cp /etc/ssl/certs/ca-certificates.crt /distroless/etc/ssl/certs/ca-certificates.crt \ - # Cleanup temp files - && rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/* - -## Builder image, install all the dependencies and build the app -FROM base AS builder - -ARG USE_CN_MIRROR - -ENV NEXT_PUBLIC_BASE_PATH="" - -# Sentry -ENV NEXT_PUBLIC_SENTRY_DSN="" \ - SENTRY_ORG="" \ - SENTRY_PROJECT="" - -# Posthog -ENV NEXT_PUBLIC_ANALYTICS_POSTHOG="" \ - NEXT_PUBLIC_POSTHOG_HOST="" \ - NEXT_PUBLIC_POSTHOG_KEY="" - -# Umami -ENV NEXT_PUBLIC_ANALYTICS_UMAMI="" \ - NEXT_PUBLIC_UMAMI_SCRIPT_URL="" \ - NEXT_PUBLIC_UMAMI_WEBSITE_ID="" - -# Node -ENV NODE_OPTIONS="--max-old-space-size=8192" - -WORKDIR /app - -COPY package.json ./ -COPY .npmrc ./ - -RUN \ - # If you want to build docker in China, build with --build-arg USE_CN_MIRROR=true - if [ "${USE_CN_MIRROR:-false}" = "true" ]; then \ - export SENTRYCLI_CDNURL="https://npmmirror.com/mirrors/sentry-cli"; \ - npm config set registry "https://registry.npmmirror.com/"; \ - echo 'canvas_binary_host_mirror=https://npmmirror.com/mirrors/canvas' >> .npmrc; \ - fi \ - # Set the registry for corepack - && export COREPACK_NPM_REGISTRY=$(npm config get registry | sed 's/\/$//') \ - # Enable corepack - && corepack enable \ - # Use pnpm for corepack - && corepack use pnpm \ - # Install the dependencies - && pnpm i \ - # Add sharp dependencies - && mkdir -p /deps \ - && pnpm add sharp --prefix /deps - -COPY . . - -# run build standalone for docker version -RUN npm run build:docker - -## Application image, copy all the files for production -FROM busybox:latest AS app - -COPY --from=base /distroless/ / - -COPY --from=builder /app/public /app/public - -# Automatically leverage output traces to reduce image size -# 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 --from=builder /deps/node_modules/.pnpm /app/node_modules/.pnpm - -# Copy server launcher -COPY --from=builder /app/scripts/serverLauncher/startServer.js /app/startServer.js - -RUN \ - # Add nextjs:nodejs to run the app - addgroup -S -g 1001 nodejs \ - && adduser -D -G nodejs -H -S -h /app -u 1001 nextjs \ - # Set permission for nextjs:nodejs - && chown -R nextjs:nodejs /app /etc/proxychains4.conf - -## Production image, copy all the files and run next -FROM scratch - -# Copy all the files from app, set the correct permission for prerender cache -COPY --from=app / / - -ENV NODE_ENV="production" \ - NODE_OPTIONS="--use-openssl-ca" \ - NODE_EXTRA_CA_CERTS="/etc/ssl/certs/ca-certificates.crt" \ - NODE_TLS_REJECT_UNAUTHORIZED="" - -# set hostname to localhost -ENV HOSTNAME="0.0.0.0" \ - PORT="3210" - -# General Variables -ENV ACCESS_CODE="" \ - API_KEY_SELECT_MODE="" \ - DEFAULT_AGENT_CONFIG="" \ - SYSTEM_AGENT="" \ - FEATURE_FLAGS="" \ - PROXY_URL="" - -# Model Variables -ENV \ - # AI21 - AI21_API_KEY="" \ - # Ai360 - AI360_API_KEY="" \ - # Anthropic - ANTHROPIC_API_KEY="" ANTHROPIC_PROXY_URL="" \ - # Amazon Bedrock - AWS_ACCESS_KEY_ID="" AWS_SECRET_ACCESS_KEY="" AWS_REGION="" AWS_BEDROCK_MODEL_LIST="" \ - # Azure OpenAI - AZURE_API_KEY="" AZURE_API_VERSION="" AZURE_ENDPOINT="" AZURE_MODEL_LIST="" \ - # Baichuan - BAICHUAN_API_KEY="" \ - # DeepSeek - DEEPSEEK_API_KEY="" \ - # Fireworks AI - FIREWORKSAI_API_KEY="" FIREWORKSAI_MODEL_LIST="" \ - # GitHub - GITHUB_TOKEN="" GITHUB_MODEL_LIST="" \ - # Google - GOOGLE_API_KEY="" GOOGLE_PROXY_URL="" \ - # Groq - GROQ_API_KEY="" GROQ_MODEL_LIST="" GROQ_PROXY_URL="" \ - # Hunyuan - HUNYUAN_API_KEY="" HUNYUAN_MODEL_LIST="" \ - # Minimax - MINIMAX_API_KEY="" \ - # Mistral - MISTRAL_API_KEY="" \ - # Moonshot - MOONSHOT_API_KEY="" MOONSHOT_PROXY_URL="" \ - # Novita - NOVITA_API_KEY="" NOVITA_MODEL_LIST="" \ - # Ollama - OLLAMA_MODEL_LIST="" OLLAMA_PROXY_URL="" \ - # OpenAI - OPENAI_API_KEY="" OPENAI_MODEL_LIST="" OPENAI_PROXY_URL="" \ - # OpenRouter - OPENROUTER_API_KEY="" OPENROUTER_MODEL_LIST="" \ - # Perplexity - PERPLEXITY_API_KEY="" PERPLEXITY_PROXY_URL="" \ - # Qwen - QWEN_API_KEY="" QWEN_MODEL_LIST="" \ - # SiliconCloud - SILICONCLOUD_API_KEY="" SILICONCLOUD_MODEL_LIST="" SILICONCLOUD_PROXY_URL="" \ - # Spark - SPARK_API_KEY="" \ - # Stepfun - STEPFUN_API_KEY="" \ - # Taichu - TAICHU_API_KEY="" \ - # TogetherAI - TOGETHERAI_API_KEY="" TOGETHERAI_MODEL_LIST="" \ - # Upstage - UPSTAGE_API_KEY="" \ - # 01.AI - ZEROONE_API_KEY="" ZEROONE_MODEL_LIST="" \ - # Zhipu - ZHIPU_API_KEY="" ZHIPU_MODEL_LIST="" - -USER nextjs - -EXPOSE 3210/tcp - -ENTRYPOINT ["/bin/node"] - -CMD ["/app/startServer.js"]