Spaces:
Paused
Paused
| FROM python:3.11-slim-bookworm | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV PYTHONUNBUFFERED=1 | |
| ENV PGDATA=/data/postgres | |
| # Install PostgreSQL 15 + tools | |
| RUN apt-get update && \ | |
| apt-get install -y --no-install-recommends \ | |
| postgresql-15 \ | |
| postgresql-contrib-15 \ | |
| postgresql-client-15 \ | |
| supervisor \ | |
| curl \ | |
| unzip \ | |
| sudo \ | |
| procps \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install pgweb (lightweight PostgreSQL web UI) | |
| RUN curl -sL https://github.com/sosedoff/pgweb/releases/download/v0.16.0/pgweb_linux_amd64.zip \ | |
| -o /tmp/pgweb.zip && \ | |
| unzip /tmp/pgweb.zip -d /usr/local/bin/ && \ | |
| mv /usr/local/bin/pgweb_linux_amd64 /usr/local/bin/pgweb && \ | |
| chmod +x /usr/local/bin/pgweb && \ | |
| rm /tmp/pgweb.zip | |
| # Install Python dependencies | |
| COPY requirements.txt /tmp/ | |
| RUN pip install --no-cache-dir -r /tmp/requirements.txt | |
| # Create directories | |
| RUN mkdir -p /data/postgres \ | |
| /data/backup \ | |
| /var/run/postgresql \ | |
| /var/log/supervisor \ | |
| /app && \ | |
| chown -R postgres:postgres /data/postgres /var/run/postgresql && \ | |
| chmod 700 /data/postgres | |
| # Copy application files | |
| COPY start.sh /app/start.sh | |
| COPY sync_manager.py /app/sync_manager.py | |
| COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf | |
| RUN chmod +x /app/start.sh | |
| WORKDIR /app | |
| EXPOSE 7860 | |
| CMD ["/app/start.sh"] |