# Base stage with deps FROM ubuntu:18.04 AS base ENV DEBIAN_FRONTEND=noninteractive TZ=Europe/Berlin # Setup build deps RUN apt-get update && \ apt-get -y install --no-install-recommends build-essential git cmake autoconf automake unzip libtool-bin pkgconf libssl-dev \ python2.7 python-pip python3 python3-pip python-cheetah libcppunit-dev swig uuid-dev libusb-1.0-0-dev \ python-mako libzmq3-dev libcomedi-dev python-sip-dev python-six socat \ python-numpy python-wxgtk3.0 libzmq3-dev \ libqt4-opengl-dev python-qt4 libqwt-dev python-gtk2 python-lxml \ git openssh-client ca-certificates && \ rm -rf /var/lib/apt/lists/* # Donwnload stage FROM base AS build ENV DEBIAN_FRONTEND=noninteractive TZ=Europe/Berlin # 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 && \ git clone git@${PROP_SERVER}:${PROP_DIR_SDR}/gr-ccsds.git move2radio-prop/gr-ccsds && \ git clone git@${PROP_SERVER}:${PROP_DIR_SDR}/libfec.git move2radio-prop/fec # Build sources WORKDIR /app/move2radio COPY build/CMakeLists.txt /app/move2radio/CMakeLists.txt RUN mkdir build WORKDIR /app/move2radio/build RUN cmake -DAPPIMAGE=OFF -DCONDA_ENV=OFF -DLDPC_OFFLINE=ON -DGR_CCSDS_OFFLINE=ON -DFEC_OFFLINE=ON -DOFFLINE_DEPENDENCY_PATH=/app/move2radio-prop .. RUN make build_gr_osmosdr # RUN make install_fec build_ldpc build_curlpp # RUN make build_gr_ccsds # RUN make move2radio # # Run stage # FROM base AS run # ENV DEBIAN_FRONTEND=noninteractive TZ=Europe/Berlin # # Copy sources from build stage # COPY --from=build /app/move2radio/build/prefix/usr /app/move2radio/build/prefix/usr # COPY --from=build /app/move2radio/AppDir/move-ii-gr /app/move2radio/AppDir/move-ii-gr # ENV PATH="/app/move2radio/build/prefix/usr/bin:${PATH}" \ # PYTHONPATH="/app/move2radio/build/prefix/usr/lib/python2.7/dist-packages:${PYTHONPATH}" \ # LD_LIBRARY_PATH="/app/move2radio/build/prefix/usr/lib:${LD_LIBRARY_PATH}" # # Install binaries # # COPY build/blocks/* app/move2radio/build/prefix/usr/share/gnuradio/grc/blocks/ # COPY build/fakeserver/* /app/fakeserver/ # COPY build/run*.sh /app/ # RUN chmod 644 app/move2radio/build/prefix/usr/share/gnuradio/grc/blocks/*.xml && \ # chmod +x /app/run*.sh && ldconfig # ENTRYPOINT ["/app/run-cli.sh"]