Spaces:
Build error
Build error
FROM python:3.9-slim AS builder | |
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 | |
FROM python:3.9-slim | |
WORKDIR /app | |
# Install runtime dependencies | |
RUN apt-get update \ | |
&& apt-get install -y --no-install-recommends libpq5 redis-server \ | |
&& apt-get install -y postgresql \ | |
&& apt-get clean \ | |
&& rm -rf /var/lib/apt/lists/* | |
# Install PostgreSQL client | |
RUN apt-get update \ | |
&& apt-get install -y --no-install-recommends postgresql-client \ | |
&& apt-get clean \ | |
&& rm -rf /var/lib/apt/lists/* | |
# Switch to the root user | |
USER root | |
# Copy the built virtual environment from the builder stage | |
COPY --from=builder /usr/local /usr/local | |
# Copy the rest of the backend files to the container | |
COPY ./ . | |
# Install additional Python dependencies | |
#RUN pip install -U -q pyngrok ipython psycopg2 alembic | |
# Create PostgreSQL users and databases in the background | |
#RUN service redis-server start \ | |
# && service postgresql start | |
RUN apt-get update && apt-get install -y supervisor redis-server postgresql-12 | |
# Copying supervisor configuration file to container | |
ADD supervisor.conf /etc/supervisor.conf | |
# Initializing redis and postgres services using supervisord | |
CMD ["supervisord","-c","supervisor.conf"] | |
#RUN pg_ctl start -D /usr/local/pgsql/data -l logfile \ | |
# && psql -c "CREATE USER postadmin WITH PASSWORD 'postpass';" \ | |
# && psql -c "CREATE DATABASE siksalaya;" \ | |
# && psql -c "GRANT ALL PRIVILEGES ON DATABASE siksalaya TO postadmin;" \ | |
# && pg_ctl stop -D /usr/local/pgsql/data | |
RUN alembic revision --autogenerate -m "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"] | |