FROM python:3.9-slim COPY . /app WORKDIR /app COPY ./pyproject.toml . COPY ./poetry.lock . # 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 ls RUN alembic revision --autogenerate -m "migrations" # 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"]