knowledge-net / Dockerfile
Soham Waghmare
chore
e4877fb
# Read the doc: https://huggingface.co/docs/hub/spaces-sdks-docker
# you will also find guides on how best to write your Dockerfile
FROM python:3.12
RUN --mount=type=secret,id=GOOGLE_API_KEY,mode=0444,required=true
RUN --mount=type=secret,id=ALLOWED_ORIGINS,mode=0444,required=true
RUN --mount=type=secret,id=NEXT_PUBLIC_BACKEND_URL,mode=0444,required=true
RUN useradd -m -u 1000 user
USER user
ENV PATH="/home/user/.local/bin:$PATH"
WORKDIR /app
RUN pip install uv
COPY --chown=user . /app
# ---------- Backend ----------
WORKDIR /app/backend
RUN uv sync
RUN uv run playwright install chromium
USER root
RUN apt update
RUN apt install -y libnss3\
libnspr4\
libdbus-1-3\
libatk1.0-0\
libatk-bridge2.0-0\
libcups2\
libxcomposite1\
libxdamage1\
libxfixes3\
libxrandr2\
libgbm1\
libxkbcommon0\
libasound2\
libatspi2.0-0\
nginx
RUN mkdir -p /var/lib/nginx/body && chown -R user:user /var/lib/nginx
RUN mkdir -p /var/log/nginx && chown -R user:user /var/log/nginx
RUN apt-get update && apt-get install -y \
curl \
unzip \
bash \
build-essential \
netcat-traditional \
&& rm -rf /var/lib/apt/lists/*
USER user
# ---------- Frontend ----------
WORKDIR /app/frontend
# Install system dependencies
USER root
RUN apt-get update && apt-get install -y \
curl \
unzip \
bash \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Install Node.js (LTS)
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs
USER user
# Install Bun
RUN curl -fsSL https://bun.sh/install | bash
ENV PATH="/home/user/.bun/bin:${PATH}"
RUN bun install
RUN bun run build
WORKDIR /app
# ---------- Nginx ----------
USER root
COPY nginx.conf /etc/nginx/nginx.conf
USER user
RUN chmod +x /app/start.sh
CMD ["/app/start.sh"]