65 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # Private temp download stage
 | |
| FROM ubuntu:18.04 as intermediate
 | |
| ENV DEBIAN_FRONTEND=noninteractive TZ=Europe/Berlin
 | |
| 
 | |
| # Setup git
 | |
| RUN apt-get update && \
 | |
|     apt-get -y install git && \
 | |
|     rm -rf /var/lib/apt/lists/*
 | |
| 
 | |
| # Setup key and server for proprietary code
 | |
| ARG PROP_SERVER
 | |
| ARG PROP_SERVER_USER
 | |
| ARG PROP_SERVER_KEY
 | |
| RUN mkdir /root/.ssh/ && chmod 700 /root/.ssh && \
 | |
|     echo "${PROP_SERVER_KEY}" > /root/.ssh/id_rsa && chmod 600 /root/.ssh/id_rsa && \
 | |
|     echo "Host ${PROP_SERVER}" > /root/.ssh/config && echo "  User ${PROP_SERVER_USER}" >> /root/.ssh/config && \
 | |
|     echo "  IdentityFile ~/.ssh/id_rsa" >> /root/.ssh/config && chmod 644 /root/.ssh/config && \
 | |
|     touch /root/.ssh/known_hosts && chmod 644 /root/.ssh/known_hosts && \
 | |
|     ssh-keyscan -H ${PROP_SERVER} >> /root/.ssh/known_hosts
 | |
| 
 | |
| # Clone sources
 | |
| ARG PROP_DIR_SDR
 | |
| ARG PROP_DIR_DECODER
 | |
| WORKDIR /app
 | |
| RUN git clone https://github.com/MOVE-II/move2radio.git && \
 | |
|     cd move2radio && git checkout 6fcbae73359b0618312d222148aba07799a43a47 && git reset --hard && cd .. && \
 | |
|     git clone git@${PROP_SERVER}:${PROP_DIR_SDR}/ldpc.git move2radio-prop/ldpc && \
 | |
|     cd move2radio-prop/ldpc && git checkout 940e8f96ccae831c7d3ad6b9497710696cd7f324 && git reset --hard && cd ../.. && \
 | |
|     git clone git@${PROP_SERVER}:${PROP_DIR_SDR}/gr-ccsds.git move2radio-prop/gr-ccsds && \
 | |
|     cd move2radio-prop/gr-ccsds && git checkout 5777e4176fe381327fe6cf55b7ec0dfe3c63b3f6 && git reset --hard && cd ../..
 | |
| RUN git clone git@${PROP_SERVER}:${PROP_DIR_SDR}/com_utilities.git move2radio-prop/com_utilities
 | |
| 
 | |
| # Build stage
 | |
| FROM ubuntu:18.04
 | |
| ENV DEBIAN_FRONTEND=noninteractive TZ=Europe/Berlin
 | |
| 
 | |
| # Setup build deps
 | |
| RUN apt-get update && \
 | |
|     apt-get -y install build-essential git cmake autoconf unzip libtool-bin pkgconf libssl-dev \
 | |
|         python2.7 python-pip python-mako socat libcppunit-dev swig uuid-dev \
 | |
|         python-mako python-numpy python-wxgtk3.0 python-sphinx python-cheetah libzmq3-dev \
 | |
|         libcomedi-dev libqt4-opengl-dev python-qt4 libqwt-dev libsdl1.2-dev python-gtk2 python-lxml python-sip-dev && \
 | |
|     rm -rf /var/lib/apt/lists/*
 | |
| 
 | |
| # Copy sources from download stage
 | |
| COPY --from=intermediate /app /app
 | |
| 
 | |
| # Build sources
 | |
| WORKDIR /app/move2radio
 | |
| COPY build/CMakeLists.txt /app/move2radio/CMakeLists.txt
 | |
| RUN mkdir build && cd build && \
 | |
|     cmake -DAPPIMAGE=OFF -DCONDA_ENV=OFF -DLDPC_OFFLINE=ON -DGR_CCSDS_OFFLINE=ON -DOFFLINE_DEPENDENCY_PATH=/app/move2radio-prop .. && \ 
 | |
|     make move2radio
 | |
| 
 | |
| # Install binaries
 | |
| COPY build/blocks/* /app/move2radio/build/prefix/usr/share/gnuradio/grc/blocks/
 | |
| RUN chmod 644 /app/move2radio/build/prefix/usr/share/gnuradio/grc/blocks/*.xml && \
 | |
|     cp -a build/prefix/usr/. /usr/ && \
 | |
|     ldconfig
 | |
| 
 | |
| # Entrypoint
 | |
| COPY build/fakeserver/* /app/fakeserver/
 | |
| COPY build/run.sh /app/run.sh
 | |
| RUN chmod +x /app/run.sh
 | |
| ENTRYPOINT ["/app/run.sh"] |