FROM python:3.7.4-slim
# Alpine isn't used here intentionally because especially with python there are often major issues when compiling dependencies
WORKDIR /app
RUN apt-get update && apt-get install -y build-essential
COPY ./requirements.txt ./
RUN pip install -r /app/requirements.txt
COPY . .
EXPOSE 4000
# The -u flag is important if you want to observe the logs, otherwise python buffers the output
ENTRYPOINT [ "python", "-u", "main.py" ]