diff --git a/Dockerfile b/Dockerfile index dce099f..c4ec602 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,5 +7,7 @@ ADD . /openwebrx WORKDIR /openwebrx -CMD python2.7 openwebrx.py +VOLUME /config + +ENTRYPOINT [ "/openwebrx/docker/run.sh" ] EXPOSE 8073 diff --git a/docker/install-dependencies.sh b/docker/install-dependencies.sh index 350b56f..5cc356d 100755 --- a/docker/install-dependencies.sh +++ b/docker/install-dependencies.sh @@ -1,14 +1,65 @@ #!/bin/bash set -euxo pipefail +function cmakebuild() { + cd $1 + mkdir build + cd build + cmake .. + make + sudo make install + cd ../.. + rm -rf $1 +} + cd /tmp -STATIC_PACKAGES="sox libfftw3-dev python2.7 rtl-sdr netcat libitpp-dev libsndfile1-dev" -BUILD_PACKAGES="git build-essential cmake" +STATIC_PACKAGES="sox libfftw3-dev python2.7 rtl-sdr netcat libitpp-dev libsndfile1-dev libusb-dev" +BUILD_PACKAGES="git build-essential cmake patch" apt-get update apt-get -y install --no-install-recommends $STATIC_PACKAGES $BUILD_PACKAGES +wget http://www.sdrplay.com/software/SDRplay_RSP_API-RPi-2.13.1.run +sh SDRplay_RSP_API-RPi-2.13.1.run --noexec --target sdrplay +patch -Np0 <<'EOF' +--- sdrplay/install_lib.sh 2018-06-20 23:57:02.000000000 +0000 ++++ sdrplay/install_lib_patched.sh 2019-01-13 17:52:56.723838354 +0000 +@@ -2,18 +2,6 @@ + + echo "Installing SDRplay RSP API library 2.13..." + +-more sdrplay_license.txt +- +-while true; do +- echo "Press y and RETURN to accept the license agreement and continue with" +- read -p "the installation, or press n and RETURN to exit the installer [y/n] " yn +- case $yn in +- [Yy]* ) break;; +- [Nn]* ) exit;; +- * ) echo "Please answer y or n";; +- esac +-done +- + export ARCH=`arch` + export VERS="2.13" + +EOF +cd sdrplay +./install_lib.sh +cd .. +rm -rf sdrplay +rm SDRplay_RSP_API-RPi-2.13.1.run + +git clone https://github.com/pothosware/SoapySDR +cmakebuild SoapySDR + +git clone https://github.com/pothosware/SoapySDRPlay.git +cmakebuild SoapySDRPlay + +git clone https://github.com/rxseger/rx_tools +cmakebuild rx_tools + git clone https://github.com/simonyiszk/csdr.git cd csdr make @@ -17,34 +68,13 @@ cd .. rm -rf csdr git clone https://github.com/szechyjs/mbelib.git -cd mbelib -mkdir build -cd build -cmake .. -make -make install -cd ../.. -rm -rf mbelib - +cmakebuild mbelib + git clone https://github.com/jketterl/digiham.git -cd digiham -mkdir build -cd build -cmake .. -make -make install -cd ../.. -rm -rf digiham +cmakebuild digiham git clone https://github.com/szechyjs/dsd.git -cd dsd -mkdir build -cd build -cmake .. -make -make install -cd ../.. -rm -rf dsd +cmakebuild dsd apt-get remove --purge --autoremove -y $BUILD_PACKAGES rm -rf /var/lib/apt/lists/* diff --git a/docker/install-lib.patch b/docker/install-lib.patch new file mode 100644 index 0000000..b0c507c --- /dev/null +++ b/docker/install-lib.patch @@ -0,0 +1,22 @@ +--- sdrplay/install_lib.sh 2018-06-20 23:57:02.000000000 +0000 ++++ sdrplay/install_lib_patched.sh 2019-01-13 17:52:56.723838354 +0000 +@@ -2,18 +2,6 @@ + + echo "Installing SDRplay RSP API library 2.13..." + +-more sdrplay_license.txt +- +-while true; do +- echo "Press y and RETURN to accept the license agreement and continue with" +- read -p "the installation, or press n and RETURN to exit the installer [y/n] " yn +- case $yn in +- [Yy]* ) break;; +- [Nn]* ) exit;; +- * ) echo "Please answer y or n";; +- esac +-done +- + export ARCH=`arch` + export VERS="2.13" + + diff --git a/docker/run.sh b/docker/run.sh new file mode 100755 index 0000000..e878d2b --- /dev/null +++ b/docker/run.sh @@ -0,0 +1,23 @@ +#!/bin/bash +set -euo pipefail + +if [[ ! -f /config/config_webrx.py ]] ; then + cp config_webrx.py /config +fi + +rm config_webrx.py +ln -s /config/config_webrx.py . + + +_term() { + echo "Caught signal!" + kill -TERM "$child" 2>/dev/null +} + +trap _term SIGTERM SIGINT + +python2.7 openwebrx.py $@ & + +child=$! +wait "$child" +