ARG IMAGE="sparkd"
ARG CONFIG_DIR="src/app_sparkd/configurations/dev"
ARG SOURCE_DIR="install/sparkd-release-gcc"
ARG PYTHON_REQUIREMENTS="requirements.txt"

# sparkd_base
FROM bluetradingsystems/linux_dotnet7 AS sparkd_base
ARG CONFIG_DIR
ARG SOURCE_DIR
ARG PYTHON_REQUIREMENTS

USER "root"
RUN apt-get update && apt-get install -y liblttng-ust-dev
RUN apt-get update && apt-get install -y libpcap0.8-dev
RUN apt-get update && apt-get install -y python3-dev
RUN apt-get update && apt-get install -y python3-pip
RUN python3 -m pip install --upgrade pip
COPY "${PYTHON_REQUIREMENTS}" "/home/bts/bin/requirements.txt"
RUN pip3 install -r "/home/bts/bin/requirements.txt"

USER "bts"
COPY --chown=bts:bts "${SOURCE_DIR}" "."
COPY --chown=bts:bts "${CONFIG_DIR}" "/home/bts/sparkdata/conf"
WORKDIR "/home/bts/bin"

# sparkd
FROM sparkd_base AS sparkd

# sparkd_md_replay
FROM sparkd_base AS sparkd_md_replay
ARG MD_RECORDING_DIR="src/app_sparkd/.md_recording"
COPY --chown=bts:bts "${MD_RECORDING_DIR}" "/home/bts/sparkdata/data/md_recording"

# sparkd_symbols - like sparkd, but doesn't copy a config dir into the image
FROM bluetradingsystems/linux_dotnet7 AS sparkd_symbols
ARG SOURCE_DIR
ARG PYTHON_REQUIREMENTS="requirements.txt"

USER "root"
RUN apt-get update && apt-get install -y liblttng-ust-dev
RUN apt-get update && apt-get install -y libpcap0.8-dev
RUN apt-get update && apt-get install -y python3-dev
RUN apt-get update && apt-get install -y python3-pip
RUN python3 -m pip install --upgrade pip
COPY "${PYTHON_REQUIREMENTS}" "/home/bts/bin/requirements.txt"
RUN pip3 install -r "/home/bts/bin/requirements.txt"

USER "bts"
COPY --chown=bts:bts "${SOURCE_DIR}" "."
WORKDIR "/home/bts/bin"

# selected image
FROM ${IMAGE}
