Gurucool_Test / Dockerfile
ashwinR's picture
Update Dockerfile
c2113b3
raw
history blame
2 kB
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"]