FROM alpine/helm:3.18 AS helm-extractor
FROM python:3.12-slim

# Build Requirements Layer
WORKDIR /ksi
COPY si_tests/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
ENV PYTHONPATH="/ksi"

# Install Helm
COPY --from=helm-extractor /usr/bin/helm /usr/bin/helm

# copy the rest of the project
COPY . .

RUN \
  export DEBIAN_FRONTEND=noninteractive ; export DEBCONF_NONINTERACTIVE_SEEN=true ; export LANG=C.UTF-8; export LANGUAGE=\$LANG; export TERM=xterm \
  ; echo 'APT::Get::Install-Recommends "false"; APT::Get::Install-Suggests "false";' > /etc/apt/apt.conf.d/docker-recommends \
  ; set -ex \
# Install KSI extra packages
  ; pip install packages/ \
  ; apt-get update \
# Dependency for packages/ksi_runtest
  ; apt-get install -y rsync openssh-client \
# Cleanup
  ; rm -rf .git* ; rm -rf docs \
  ; mkdir -p /image ; dpkg-query -W -f='${Package}=${Version}\n' | sed "s/ //g" > /image/initial_packages \
  ; apt-get -y clean \
  ; rm -rf /root/.cache \
  ; rm -rf /var/lib/apt/lists/*

# set workspace for mounting
CMD ["bash"]
