FROM postgres:17 ENV POSTGRES_USER=admin ENV POSTGRES_DB=appdb # PostgreSQL runtime data directory: use the Space local disk. ENV PGDATA=/home/user/pgdata # Mounted storage bucket directories: backups, user files, exports, generated files. ENV DATA_DIR=/data ENV BACKUP_DIR=/data/backups ENV USER_FILE_DIR=/data/files ENV EXPORT_DIR=/data/exports ENV GENERATED_DIR=/data/generated # Automatic pg_dump interval, default: 1 hour. ENV BACKUP_INTERVAL_SECONDS=3600 # Adminer is installed for future use or manual local debugging. ENV ADMINER_VERSION=4.8.1 RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ ca-certificates \ php-cli \ php-pgsql \ php-mysql \ php-sqlite3 \ python3 \ python3-pip \ procps \ && rm -rf /var/lib/apt/lists/* RUN curl -L -o /adminer.php \ https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php COPY requirements.txt /requirements.txt RUN pip3 install --break-system-packages -r /requirements.txt COPY api.py /api.py COPY start.sh /start.sh RUN chmod +x /start.sh EXPOSE 5432 EXPOSE 7860 CMD ["/start.sh"]