# Copyright 2021 Google LLC.
# Use of this source code is governed by the Apache 2.0
# license that can be found in the LICENSE file.

# Use the official Python image.
# https://hub.docker.com/_/python
FROM python:3.11

# Send stdout/stderr out, do not buffer.
ENV PYTHONUNBUFFERED 1

# Copy application dependency manifests to the container image.
# Copying this separately prevents re-running pip install on every code change.
COPY requirements.txt ./

# Install production dependencies.
RUN set -ex; \
    pip install -r requirements.txt;

# Copy local code to the container image.
ENV APP_HOME /app
WORKDIR $APP_HOME
COPY . ./

# Run the web service on container startup. Here we use the gunicorn
# webserver, with one worker process and 8 threads.
# For environments with multiple CPU cores, increase the number of workers
# to be equal to the cores available.
CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
