Download Dockerfile from Bani57/website: direct link, hf CLI and curl.
- Browser
- Download file 2.69 kB
-
https://huggingface.co/spaces/Bani57/website/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/Bani57/website/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/Bani57/website/resolve/main/Dockerfile
2.69 kB
| # syntax=docker/dockerfile:1.6 | |
| # ---- Stage 1: build the Vue SPA ---- | |
| FROM node:20-alpine AS frontend | |
| WORKDIR /app | |
| COPY src/frontend/package*.json ./ | |
| RUN npm ci | |
| COPY src/frontend ./ | |
| RUN npm run build | |
| # ---- Stage 2: backend runtime, mirrors the local website_c mamba env ---- | |
| FROM mambaorg/micromamba:1.5.10 | |
| USER root | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| build-essential libgl1 libglib2.0-0 git curl ca-certificates \ | |
| && rm -rf /var/lib/apt/lists/* | |
| USER $MAMBA_USER | |
| # Conda half: Python 3.9, rdkit, boost, cairo, … | |
| COPY --chown=$MAMBA_USER:$MAMBA_USER environment.yml /tmp/environment.yml | |
| RUN micromamba install -y -n base -f /tmp/environment.yml \ | |
| && micromamba clean --all --yes | |
| ARG MAMBA_DOCKERFILE_ACTIVATE=1 | |
| # Pip half: GPU torch (cu118), torch-geometric, Django, DRF, … | |
| COPY --chown=$MAMBA_USER:$MAMBA_USER src/backend/requirements.txt /tmp/requirements.txt | |
| RUN pip install --no-cache-dir \ | |
| --extra-index-url https://download.pytorch.org/whl/cu118 \ | |
| -r /tmp/requirements.txt | |
| # karateclub 1.3.3 falsely caps numpy<1.23; install without its setup.py | |
| # resolving that, real runtime deps are already covered by requirements.txt. | |
| RUN pip install --no-cache-dir --no-deps karateclub==1.3.3 | |
| # Application code + research repo + built SPA | |
| WORKDIR /app | |
| COPY --chown=$MAMBA_USER:$MAMBA_USER src/backend /app/backend | |
| COPY --chown=$MAMBA_USER:$MAMBA_USER src/research /app/research | |
| COPY --chown=$MAMBA_USER:$MAMBA_USER --from=frontend /app/dist /app/backend/dist | |
| COPY --chown=$MAMBA_USER:$MAMBA_USER --chmod=0755 entrypoint.sh /entrypoint.sh | |
| # /app/research is the unified root for code, configs, Loader caches and | |
| # downloaded weights. Already owned by mambauser via the COPY --chown above | |
| # — snapshot_download writes new files into it at runtime. | |
| # Settings.py derives every research path (configs, code, results, weights) | |
| # from these two roots. We unify them — snapshot_download writes new | |
| # checkpoint files into the research tree alongside the bundled code, | |
| # configs and Loader caches. Any mambauser-owned file under /app/research | |
| # is writable at runtime; the read-only image layer holds the originals. | |
| # Override CHECKPOINTS_ROOT (e.g. to /data/checkpoints on a paid HF Space | |
| # with persistent storage) to point downloads elsewhere. | |
| ENV RESEARCH_ROOT=/app/research \ | |
| CHECKPOINTS_ROOT=/app/research \ | |
| SPA_DIST_DIR=/app/backend/dist \ | |
| DJANGO_SETTINGS_MODULE=research_api.settings \ | |
| PYTHONUNBUFFERED=1 \ | |
| PORT=7860 \ | |
| HF_HUB_ENABLE_HF_TRANSFER=1 | |
| WORKDIR /app/backend | |
| RUN python manage.py collectstatic --noinput | |
| EXPOSE 7860 | |
| ENTRYPOINT ["/usr/local/bin/_entrypoint.sh", "/entrypoint.sh"] | |