FROM --platform=linux/amd64 ghcr.io/owl-corp/python-poetry-base:3.11-slim

WORKDIR /app

# Limit amount of concurrent install requests, to avoid hitting PyPI rate-limits
RUN poetry config installer.max-workers 10

# Install project dependencies
COPY pyproject.toml poetry.lock ./
RUN poetry install --only main --no-interaction --no-ansi -vvv

# Copy the source code in last, to optimize rebuilding the image
COPY . .

# Build staticfiles
RUN \
  # Set dummy env variables so collectstatic can load settings.py
  SECRET_KEY=dummy_value \
  POSTGRES_DB=dummy_value \
  POSTGRES_USER=dummy_value \
  POSTGRES_PASSWORD=dummy_value \
  POSTGRES_HOST=dummy_value \
  POSTGRES_PORT=1234 \
  REDIS_LOCATION=redis://dummy_value:dummy_value@dummy_value:6379/0 \
  LOCAL_EMAILS=1 \
  poetry run python manage.py collectstatic --noinput --clear

ENTRYPOINT ["poetry", "run", "python", "manage.py"]
CMD ["run"]
