FROM python:3.9-slim WORKDIR /app # Install build dependencies RUN apt-get update \ && apt-get install -y --no-install-recommends build-essential \ && pip install --upgrade pip poetry \ && poetry config virtualenvs.create false \ && poetry install --no-interaction --no-ansi # Install runtime dependencies RUN apt-get update \ && apt-get install -y --no-install-recommends redis-server postgresql \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Start Redis and Postgres RUN service redis-server start RUN service postgresql start # Create user, database, and grant privileges RUN su postgres -c "psql -c \"CREATE USER postadmin WITH PASSWORD 'postpass';\"" RUN su postgres -c "psql -c \"CREATE DATABASE siksalaya;\"" RUN su postgres -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE siksalaya TO postadmin;\"" # Set environment variables for Alembic ENV DATABASE_URL=postgresql://postadmin:postpass@localhost/siksalaya # Run Alembic migrations RUN alembic upgrade head # Start the FastAPI app using Uvicorn CMD ["bash", "-c", "redis-server --daemonize yes && uvicorn app:app --host 0.0.0.0 --port 7860"]