Download Dockerfile from LoveLogicAI/kanbot-backend: direct link, hf CLI and curl.
- Browser
- Download file 2.18 kB
-
https://huggingface.co/spaces/LoveLogicAI/kanbot-backend/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/LoveLogicAI/kanbot-backend/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/LoveLogicAI/kanbot-backend/resolve/main/Dockerfile
2.18 kB
| # KanBot backend — self-contained Docker Space. | |
| # Installs Postgres server inside the container, stores data in /data (persistent | |
| # volume), and runs the web board on port 7860. | |
| # | |
| # DB_HOST env var: if set and reachable, the web server connects to that | |
| # external Postgres instead of the local one. Falls back to local automatically. | |
| # | |
| # The HF Docker Space runtime executes the container as UID 1000, so the | |
| # Debian "postgres" user is remapped to UID 1000 here and the entrypoint runs | |
| # initdb / pg_ctl / psql directly (no `su`, which requires root). | |
| FROM python:3.11-slim | |
| ENV PYTHONUNBUFFERED=1 \ | |
| PYTHONDONTWRITEBYTECODE=1 \ | |
| PIP_NO_CACHE_DIR=1 \ | |
| DEBIAN_FRONTEND=noninteractive | |
| # --------------------------------------------------------------------------- # | |
| # Postgres server + client tooling | |
| # --------------------------------------------------------------------------- # | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| postgresql \ | |
| postgresql-client \ | |
| netcat-openbsd \ | |
| ca-certificates \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && usermod -u 1000 postgres && groupmod -g 1000 postgres \ | |
| && mkdir -p /var/lib/pgsql /run/postgresql \ | |
| && chown -R postgres:postgres /var/lib/pgsql /run/postgresql /var/lib/postgresql | |
| # --------------------------------------------------------------------------- # | |
| # Python deps (same requirements as the local kanbot repo) | |
| # --------------------------------------------------------------------------- # | |
| WORKDIR /app | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| COPY --chown=postgres:postgres . /app | |
| RUN chmod +x /app/entrypoint.sh | |
| ENV DATABASE_URL="postgresql://kanbot:kanbot@localhost:5432/kanbot" \ | |
| KANBOT_WEB_HOST="0.0.0.0" \ | |
| KANBOT_WEB_PORT="7860" \ | |
| KANBOT_SCHEMA_SQL="/app/sql/001_schema_quoted.sql" \ | |
| PGDATA="/data/pgdata" \ | |
| HOME="/var/lib/postgresql" | |
| USER postgres:postgres | |
| EXPOSE 7860 | |
| HEALTHCHECK --interval=15s --timeout=5s --start-period=30s --retries=5 \ | |
| CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:7860/snapshot')" || exit 1 | |
| ENTRYPOINT ["/app/entrypoint.sh"] |