# Use an official Python runtime as a parent image
FROM python:3.9-slim
# Set the working directory in the container to /app
WORKDIR /app
# Add metadata to the image to describe that the container is listening on port 8000
EXPOSE 8000
# Update package lists and install build tools
RUN apt-get update && apt-get install -y build-essential curl
# Install Poetry
RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
# Copy only the pyproject.toml and poetry.lock files to the container
COPY pyproject.toml poetry.lock /app/
# Install project dependencies
RUN $HOME/.poetry/bin/poetry install --no-root
# Copy the current directory contents into the container at /app
COPY . /app
# Run server.py when the container launches
CMD ["python", "server.py"]