mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-30 20:40:20 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			239 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			239 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| FROM ubuntu:18.04
 | |
| 
 | |
| ENV DEBIAN_FRONTEND=noninteractive
 | |
| 
 | |
| # Create a user with sudo rights
 | |
| RUN apt-get update && apt-get -y install sudo
 | |
| RUN useradd -m sdr && echo "sdr:sdr" | chpasswd && adduser sdr sudo
 | |
| RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
 | |
| USER sdr
 | |
| 
 | |
| # Some essentials
 | |
| RUN sudo apt-get update && sudo apt-get -y install \
 | |
| 	vim \
 | |
| 	openssh-server \
 | |
| 	iputils-ping \
 | |
| 	traceroute \
 | |
| 	iproute2
 | |
| 	
 | |
| # Configure SSH for X-forwarding
 | |
| RUN sudo sed -i '/X11Forwarding/c\X11Forwarding yes' /etc/ssh/sshd_config \
 | |
| 	&& sudo sed -i '/X11UseLocalhost/c\X11UseLocalhost no' /etc/ssh/sshd_config
 | |
| 
 | |
| # Prepare buiid and install environment
 | |
| RUN sudo mkdir /opt/build /opt/install \
 | |
|     && sudo chown sdr:sdr /opt/build /opt/install
 | |
| 
 | |
| # Configure tzdata manually
 | |
| ENV TZONE=Europe/Paris
 | |
| RUN sudo ln -fs /usr/share/zoneinfo/$TZONE /etc/localtime \
 | |
|     && sudo apt-get update && sudo apt-get -y install tzdata
 | |
| 
 | |
| # Install base build packages dependencies - step 1
 | |
| RUN sudo apt-get update && sudo apt-get -y install \
 | |
|     git \
 | |
|     cmake \
 | |
|     g++ \
 | |
|     pkg-config \
 | |
|     autoconf \
 | |
|     automake \
 | |
|     libtool \
 | |
|     libfftw3-dev \
 | |
|     libusb-1.0-0-dev \
 | |
|     libusb-dev
 | |
| 
 | |
| # Install base build packages dependencies - Qt5
 | |
| RUN sudo apt-get update && sudo apt-get -y install \
 | |
|     qt5-default \
 | |
|     qtbase5-dev \
 | |
|     qtchooser \
 | |
|     libqt5multimedia5-plugins \
 | |
|     qtmultimedia5-dev \
 | |
|     qttools5-dev \
 | |
|     qttools5-dev-tools \
 | |
|     libqt5opengl5-dev \
 | |
|     qtbase5-dev
 | |
| 
 | |
| # Install base build packages dependencies - Boost
 | |
| RUN sudo apt-get update && sudo apt-get -y install \
 | |
|     libboost-all-dev
 | |
| 
 | |
| # Install base build packages dependencies - the rest
 | |
| RUN sudo apt-get update && sudo apt-get -y install \
 | |
|     libasound2-dev \
 | |
|     pulseaudio \
 | |
|     libopencv-dev \
 | |
|     libxml2-dev \
 | |
|     bison \
 | |
|     flex \
 | |
|     ffmpeg \
 | |
|     libavcodec-dev \
 | |
|     libavformat-dev \
 | |
|     libopus-dev
 | |
| 
 | |
| # CM256cc
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/f4exb/cm256cc.git \
 | |
|     && cd cm256cc \
 | |
|     && git reset --hard 64beaaa \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/cm256cc .. \
 | |
|     && make -j4 install
 | |
| 
 | |
| # MBElib
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/szechyjs/mbelib.git \
 | |
|     && cd mbelib \
 | |
|     && git reset --hard e2d84c1 \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/mbelib .. \
 | |
|     && make -j4 install
 | |
| 
 | |
| # SerialDV
 | |
| RUN cd /opt/build \ 
 | |
|     && git clone https://github.com/f4exb/serialDV.git \
 | |
|     && cd serialDV \
 | |
|     && git reset --hard 06caac6 \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/serialdv .. \
 | |
|     && make -j4 install
 | |
|     
 | |
| # DSDcc    
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/f4exb/dsdcc.git \
 | |
|     && cd dsdcc \
 | |
|     && git reset --hard 2a89df4 \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/dsdcc -DUSE_MBELIB=ON -DLIBMBE_INCLUDE_DIR=/opt/install/mbelib/include -DLIBMBE_LIBRARY=/opt/install/mbelib/lib/libmbe.so -DLIBSERIALDV_INCLUDE_DIR=/opt/install/serialdv/include/serialdv -DLIBSERIALDV_LIBRARY=/opt/install/serialdv/lib/libserialdv.so .. \
 | |
|     && make -j4 install
 | |
| 
 | |
| # Codec2
 | |
| RUN sudo apt-get update && sudo apt-get -y install subversion \
 | |
|     libspeexdsp-dev \
 | |
|     libsamplerate0-dev
 | |
| RUN cd /opt/build \
 | |
|     && svn co https://svn.code.sf.net/p/freetel/code/codec2-dev@4067 codec2-dev \
 | |
|     && cd codec2-dev \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/codec2 .. \
 | |
|     && make -j4 install
 | |
|     
 | |
| # Airspy
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/airspy/host.git libairspy \
 | |
|     && cd libairspy \
 | |
|     && git reset --hard 5c86e53 \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libairspy .. \
 | |
|     && make -j4 install
 | |
| 
 | |
| # RTL-SDR
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/librtlsdr/librtlsdr.git \
 | |
|     && cd librtlsdr \
 | |
|     && git reset --hard c7d970a \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DDETACH_KERNEL_DRIVER=ON -DCMAKE_INSTALL_PREFIX=/opt/install/librtlsdr .. \
 | |
|     && make -j4 install
 | |
| 
 | |
| # PlutoSDR
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/analogdevicesinc/libiio.git \
 | |
|     && cd libiio \
 | |
|     && git reset --hard 5bdc242 \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libiio -DINSTALL_UDEV_RULE=OFF .. \
 | |
|     && make -j4 install
 | |
| 
 | |
| # BladeRF
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/Nuand/bladeRF.git \
 | |
|     && cd bladeRF/host \
 | |
|     && git reset --hard 32058c4 \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libbladeRF -DINSTALL_UDEV_RULES=OFF .. \
 | |
|     && make -j4 install
 | |
|     
 | |
| # HackRF
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/mossmann/hackrf.git \
 | |
|     && cd hackrf/host \
 | |
|     && git reset --hard 9bbbbbf \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libhackrf -DINSTALL_UDEV_RULES=OFF .. \
 | |
|     && make -j4 install
 | |
| 
 | |
| # LimeSDR
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/myriadrf/LimeSuite.git \
 | |
|     && cd LimeSuite \
 | |
|     && git reset --hard 59d51d5 \
 | |
|     && mkdir builddir; cd builddir \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/LimeSuite .. \
 | |
|     && make -j4 install
 | |
| 
 | |
| # Airspy HF
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/airspy/airspyhf \
 | |
|     && cd airspyhf \
 | |
|     && git reset --hard 075b8f9 \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libairspyhf .. \
 | |
|     && make -j4 install
 | |
|     
 | |
| # Perseus
 | |
| RUN sudo apt-get update && sudo apt-get -y install xxd
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/f4exb/libperseus-sdr.git \
 | |
|     && cd libperseus-sdr \
 | |
|     && git checkout fixes \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/libperseus .. \
 | |
|     && make \
 | |
|     && make install    
 | |
|     
 | |
| # XTRX
 | |
| RUN sudo apt-get update && sudo apt-get -y install python-cheetah
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/xtrx-sdr/images.git xtrx-images \
 | |
|     && cd xtrx-images \
 | |
|     && git reset --hard 053ec82 \
 | |
|     && git submodule init \
 | |
|     && git submodule update \
 | |
|     && cd sources \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DCMAKE_INSTALL_PREFIX=/opt/install/xtrx-images -DENABLE_SOAPY=NO .. \
 | |
|     && make -j4 install    
 | |
| 
 | |
| # Soapy main
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/pothosware/SoapySDR.git \
 | |
|     && cd SoapySDR \
 | |
|     && git reset --hard 6d21756 \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -DCMAKE_INSTALL_PREFIX=/opt/install/SoapySDR .. \
 | |
|     && make -j4 install
 | |
| 
 | |
| # Soapy remote
 | |
| RUN sudo apt-get update && sudo apt-get -y install libavahi-client-dev
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/pothosware/SoapyRemote.git \
 | |
|     && cd SoapyRemote \
 | |
|     && git reset --hard 4f5d717 \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -DCMAKE_INSTALL_PREFIX=/opt/install/SoapySDR -DSOAPY_SDR_INCLUDE_DIR=/opt/install/SoapySDR/include -DSOAPY_SDR_LIBRARY=/opt/install/SoapySDR/lib/libSoapySDR.so .. \
 | |
|     && make -j4 install
 | |
|     
 | |
| # Finally SDRangel
 | |
| RUN cd /opt/build \
 | |
|     && git clone https://github.com/f4exb/sdrangel.git \
 | |
|     && cd sdrangel \
 | |
|     && mkdir build; cd build \
 | |
|     && cmake -Wno-dev -DDEBUG_OUTPUT=ON -DBUILD_TYPE=RELEASE -DRX_SAMPLE_24BIT=ON -DMIRISDR_DIR=/opt/install/libmirisdr -DAIRSPY_DIR=/opt/install/libairspy -DAIRSPYHF_DIR=/opt/install/libairspyhf -DBLADERF_DIR=/opt/install/libbladeRF -DHACKRF_DIR=/opt/install/libhackrf -DRTLSDR_DIR=/opt/install/librtlsdr -DLIMESUITE_DIR=/opt/install/LimeSuite -DIIO_DIR=/opt/install/libiio -DCM256CC_DIR=/opt/install/cm256cc -DDSDCC_DIR=/opt/install/dsdcc -DSERIALDV_DIR=/opt/install/serialdv -DMBE_DIR=/opt/install/mbelib -DPERSEUS_DIR=/opt/install/libperseus -DXTRX_DIR=/opt/install/xtrx-images -DSOAPYSDR_DIR=/opt/install/SoapySDR -DCMAKE_INSTALL_PREFIX=/opt/install/sdrangel .. \
 | |
|     && make -j8 install
 | |
| 
 | |
| # Start some services on which SDRangel depends
 | |
| RUN sudo service ssh start \
 | |
| 	&& sudo service dbus start \
 | |
| 	&& sudo service avahi-daemon start
 |