From a9e21882cd4d9421b17a624da594ba5bffc678ac Mon Sep 17 00:00:00 2001 From: Christoph Honal Date: Wed, 26 Feb 2020 00:36:21 +0100 Subject: [PATCH] Restructure dockerfile & update libs --- Dockerfile | 79 +++++++++++++++++++++++------------------------------- 1 file changed, 34 insertions(+), 45 deletions(-) diff --git a/Dockerfile b/Dockerfile index f80a161..42bc0b1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,21 @@ -# Donwnload stage -FROM ubuntu:18.04 AS download +# Base stage with deps +FROM ubuntu:18.04 AS base ENV DEBIAN_FRONTEND=noninteractive TZ=Europe/Berlin -# Setup deps +# Setup build deps RUN apt-get update && \ - apt-get -y install --no-install-recommends git openssh-client ca-certificates && \ + 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 @@ -25,56 +34,36 @@ 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 67decffcc74cafff19f7a31f11492fb69c8698eb && 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 c1b8a3fb5d77c02060ddb49b9936097f1d15e536 && git reset --hard && cd ../.. - - -# 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 && \ - rm -rf /var/lib/apt/lists/* - - -# Build stage -FROM base AS build - -# Copy sources -COPY --from=download /app /app + 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 -DOFFLINE_DEPENDENCY_PATH=/app/move2radio-prop .. +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 build_gr_ccsds -RUN make move2radio +# RUN make install_fec build_ldpc build_curlpp +# RUN make build_gr_ccsds +# RUN make move2radio -# Run stage -FROM base AS run +# # 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}" +# # 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 +# # 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"] \ No newline at end of file +# ENTRYPOINT ["/app/run-cli.sh"] \ No newline at end of file