Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| FROM node:20-bullseye AS deps | |
| WORKDIR /app | |
| COPY ui/package*.json ./ui/ | |
| RUN cd ui && npm install --ignore-scripts | |
| FROM node:20-bullseye AS build | |
| ARG HF_OAUTH_CLIENT_ID=bfa7db67-cf78-4a4b-8232-69d855ea836b | |
| ARG NEXT_PUBLIC_HF_OAUTH_CLIENT_ID=bfa7db67-cf78-4a4b-8232-69d855ea836b | |
| ARG HF_OAUTH_REDIRECT_URI=https://multimodalart-ai-toolkit.hf.space/auth/hf/callback | |
| ARG NEXT_PUBLIC_HF_OAUTH_REDIRECT_URI=https://multimodalart-ai-toolkit.hf.space/auth/hf/callback | |
| WORKDIR /app | |
| COPY . . | |
| COPY --from=deps /app/ui/node_modules ./ui/node_modules | |
| WORKDIR /app/ui | |
| ENV NODE_ENV=production \ | |
| NEXT_PUBLIC_DB_MODE=browser \ | |
| HF_OAUTH_CLIENT_ID=${HF_OAUTH_CLIENT_ID} \ | |
| NEXT_PUBLIC_HF_OAUTH_CLIENT_ID=${NEXT_PUBLIC_HF_OAUTH_CLIENT_ID} \ | |
| HF_OAUTH_REDIRECT_URI=${HF_OAUTH_REDIRECT_URI} \ | |
| NEXT_PUBLIC_HF_OAUTH_REDIRECT_URI=${NEXT_PUBLIC_HF_OAUTH_REDIRECT_URI} | |
| RUN npx prisma generate && npm run build | |
| FROM node:20-bullseye-slim AS runner | |
| ARG HF_OAUTH_CLIENT_ID=bfa7db67-cf78-4a4b-8232-69d855ea836b | |
| ARG NEXT_PUBLIC_HF_OAUTH_CLIENT_ID=bfa7db67-cf78-4a4b-8232-69d855ea836b | |
| ARG HF_OAUTH_REDIRECT_URI=https://multimodalart-ai-toolkit.hf.space/auth/hf/callback | |
| ARG NEXT_PUBLIC_HF_OAUTH_REDIRECT_URI=https://multimodalart-ai-toolkit.hf.space/auth/hf/callback | |
| WORKDIR /app/ui | |
| ENV NODE_ENV=production \ | |
| NEXT_PUBLIC_DB_MODE=browser \ | |
| NEXT_TELEMETRY_DISABLED=1 \ | |
| PORT=7860 \ | |
| DATA_ROOT=/data \ | |
| DATASETS_FOLDER=/data/datasets \ | |
| TRAINING_FOLDER=/data/output \ | |
| HF_JOBS_DEFAULT_HARDWARE=a100-large \ | |
| HF_OAUTH_CLIENT_ID=${HF_OAUTH_CLIENT_ID} \ | |
| NEXT_PUBLIC_HF_OAUTH_CLIENT_ID=${NEXT_PUBLIC_HF_OAUTH_CLIENT_ID} \ | |
| HF_OAUTH_REDIRECT_URI=${HF_OAUTH_REDIRECT_URI} \ | |
| NEXT_PUBLIC_HF_OAUTH_REDIRECT_URI=${NEXT_PUBLIC_HF_OAUTH_REDIRECT_URI} | |
| # Expect HF_OAUTH_CLIENT_SECRET to be provided at runtime. | |
| ENV HF_OAUTH_CLIENT_SECRET="" | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| python3 python3-pip git curl ca-certificates bash tini \ | |
| && pip3 install --no-cache-dir "huggingface_hub[cli]" \ | |
| && curl -LsSf https://astral.sh/uv/install.sh | bash \ | |
| && ln -s /root/.local/bin/uv /usr/local/bin/uv \ | |
| && apt-get clean && rm -rf /var/lib/apt/lists/* | |
| RUN mkdir -p /data/datasets /data/output /data/images && chmod -R 777 /data | |
| COPY --from=build /app /app | |
| COPY --from=deps /app/ui/node_modules ./node_modules | |
| EXPOSE 7860 | |
| ENTRYPOINT ["tini", "--"] | |
| CMD ["npm", "run", "start", "--", "--hostname", "0.0.0.0", "--port", "7860"] | |