Spaces:
Running
Running
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"] | |