FROM python:3.12

ENV PYTEST_RUNNING_IN_CONTAINER=1

COPY python-requirements.txt /requirements.txt
RUN pip install -r /requirements.txt

# Add Docker's official GPG key
RUN apt-get update \
  && apt-get install -y \
    ca-certificates \
    curl \
  && install -m 0755 -d /etc/apt/keyrings \
  && curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc \
  && chmod a+r /etc/apt/keyrings/docker.asc

# Add the Docker repository to Apt sources
RUN echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install docker-ce-cli and docker-compose-plugin requirements for Pytest docker_compose fixture
RUN apt-get update \
  && apt-get install -y --no-install-recommends \
    docker-ce-cli \
    docker-compose-plugin \
  && apt-get clean \
  && rm -r /var/lib/apt/lists/*

# Check if docker compose is available
RUN docker compose version

WORKDIR /test
ENTRYPOINT ["pytest"]