# syntax=docker/dockerfile:1
FROM jayfield/debian-baseimage

# ----------------------------------------------------------------------------------------------------------------------------------------
RUN apt-get update && \
    apt-get -y install --no-install-recommends openssh-server udev \
    autoconf automake build-essential ccache cmake cpufrequtils doxygen ethtool \
    g++ git inetutils-tools libboost-all-dev libncurses5 libncurses5-dev libusb-1.0-0 libusb-1.0-0-dev \
    libusb-dev python3-dev python3-mako python3-numpy python3-requests python3-scipy python3-setuptools \
    python3-ruamel.yaml && \
    rm -rf /var/lib/apt/lists/*

# ----------------------------------------------------------------------------------------------------------------------------------------
# Build from sources
# ----------------------------------------------------------------------------------------------------------------------------------------

# UHD
ADD https://github.com/EttusResearch/uhd.git /tmp/sources/uhd
WORKDIR /tmp/sources/uhd/host/build
RUN cmake ../
RUN make -j$(nproc)
RUN make test
RUN make install
RUN ldconfig
RUN cp /usr/local/lib/uhd/utils/uhd-usrp.rules /etc/udev/rules.d/
RUN /usr/local/bin/uhd_images_downloader

# SoapySDR
ADD https://github.com/pothosware/SoapySDR.git /tmp/sources/SoapySDR
WORKDIR /tmp/sources/SoapySDR/build
RUN cmake ../
RUN make -j$(nproc)
RUN make install -j$(nproc)
RUN ldconfig
RUN SoapySDRUtil --info

# SoapyUHD
ADD https://github.com/pothosware/SoapyUHD.git /tmp/sources/SoapyUHD
WORKDIR /tmp/sources/SoapyUHD/build
RUN cmake ../
RUN make -j$(nproc)
RUN make install -j$(nproc)
RUN ldconfig
ENV UHD_MODULE_PATH=/usr/local/lib/uhd/modules

# SoapyRemote
ADD https://github.com/pothosware/SoapyRemote.git /tmp/sources/SoapyRemote
WORKDIR /tmp/sources/SoapyRemote/build
RUN cmake ../
RUN make -j$(nproc)
RUN make install -j$(nproc)
RUN ldconfig

# ToDo:
# add SDRPlay API
# ADD https://github.com/pothosware/SoapySDRPlay.git

RUN rm -rf /tmp/sources

# ----------------------------------------------------------------------------------------------------------------------------------------
# Add user
RUN useradd -m jens -p jens -s /usr/bin/bash
RUN echo jens:change_me | chpasswd

WORKDIR /home/jens
RUN touch .Xauthority

# Copy scripts and configs
ENV SCRIPTS_HOME=/opt/scripts
ENV PATH=${PATH}:${SCRIPTS_HOME}
ADD scripts ${SCRIPTS_HOME}
COPY config/sshd_config /etc/ssh/

# Ports
EXPOSE 55132
EXPOSE 1900
EXPOSE 10022

# Start server
ENTRYPOINT ["/opt/scripts/server_start.sh", "/opt/scripts/server.sh"]
