From 8bf3663502773c2b2b7e0f61e2c4c8cb9144c4e7 Mon Sep 17 00:00:00 2001 From: Douglas Anderson Date: Sat, 24 Nov 2018 01:27:42 -0700 Subject: [PATCH] Split uhd build step into separate file and push to dockerhub --- Dockerfile-api | 43 +++++++++---------------------------------- Dockerfile-uhd | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 34 deletions(-) create mode 100644 Dockerfile-uhd diff --git a/Dockerfile-api b/Dockerfile-api index 7d1ae3dc..f0c5da48 100644 --- a/Dockerfile-api +++ b/Dockerfile-api @@ -1,39 +1,13 @@ -# First stage - build uhd with python3 support -FROM ubuntu as uhd - -# Everything AFTER the "v" in the tag -ARG UHD_TAG=3.13.1.0-rc1 - -RUN apt-get update -q && \ - DEBIAN_FRONTEND=noninteractive \ - apt-get install -qy --no-install-recommends \ - wget libboost-all-dev libusb-1.0-0-dev python3-setuptools \ - python3-pip python3-setuptools python3-pip python3-numpy \ - python3-mako python3-requests \ - cmake build-essential ca-certificates && \ - apt-get clean && rm -rf /var/lib/apt/lists/* - -RUN wget https://github.com/EttusResearch/uhd/archive/v${UHD_TAG}.tar.gz \ - -O uhd.tar.gz && tar -xvzf uhd.tar.gz - -RUN mkdir uhd-${UHD_TAG}/host/build -WORKDIR uhd-${UHD_TAG}/host/build -RUN cmake -DENABLE_PYTHON_API=ON -DENABLE_PYTHON3=ON ../ -RUN make -RUN make install - -RUN python3 /usr/local/lib/uhd/utils/uhd_images_downloader.py - -# Second stage - copy over all FROM ubuntu -COPY --from=uhd /usr/local/lib/libuhd.so* /usr/local/lib/ -COPY --from=uhd /usr/local/lib/uhd/ /usr/local/lib/uhd/ -COPY --from=uhd /usr/local/lib/python3/dist-packages/uhd/ /usr/lib/python3/dist-packages/uhd/ -COPY --from=uhd /usr/local/include/uhd.h /usr/local/include/ -COPY --from=uhd /usr/local/include/uhd/ /usr/local/include/uhd/ -COPY --from=uhd /usr/local/bin/uhd_* /usr/local/bin/ -COPY --from=uhd /usr/local/share/uhd/images/usrp_b2* /usr/local/share/uhd/images/ +# Copy just the necessities from our PY3-enabled UHD container +COPY --from=smsntia/uhd_b2xx_py3:3.13.1.0-rc1 /usr/local/lib/libuhd.so* /usr/local/lib/ +COPY --from=smsntia/uhd_b2xx_py3:3.13.1.0-rc1 /usr/local/lib/uhd/ /usr/local/lib/uhd/ +COPY --from=smsntia/uhd_b2xx_py3:3.13.1.0-rc1 /usr/lib/python3/dist-packages/uhd/ /usr/lib/python3/dist-packages/uhd/ +COPY --from=smsntia/uhd_b2xx_py3:3.13.1.0-rc1 /usr/local/include/uhd.h /usr/local/include/ +COPY --from=smsntia/uhd_b2xx_py3:3.13.1.0-rc1 /usr/local/include/uhd/ /usr/local/include/uhd/ +COPY --from=smsntia/uhd_b2xx_py3:3.13.1.0-rc1 /usr/local/bin/uhd_* /usr/local/bin/ +COPY --from=smsntia/uhd_b2xx_py3:3.13.1.0-rc1 /usr/local/share/uhd/images/usrp_b2* /usr/local/share/uhd/images/ RUN apt-get update -q && \ DEBIAN_FRONTEND=noninteractive \ @@ -42,6 +16,7 @@ RUN apt-get update -q && \ libboost-python1.65.1 libboost-regex1.65.1 \ libboost-serialization1.65.1 libboost-system1.65.1 \ libboost-thread1.65.1 libusb-1.0-0 libpython3.6 \ + libboost-program-options1.65.1 \ python3-setuptools python3-pip python3-numpy && \ apt-get clean && rm -rf /var/lib/apt/lists/* diff --git a/Dockerfile-uhd b/Dockerfile-uhd new file mode 100644 index 00000000..7bb29842 --- /dev/null +++ b/Dockerfile-uhd @@ -0,0 +1,46 @@ +FROM ubuntu as build + +# Everything AFTER the "v" in the GitHub tag +ARG UHD_TAG=3.13.1.0-rc1 + +RUN apt-get update -q && \ + DEBIAN_FRONTEND=noninteractive \ + apt-get install -qy --no-install-recommends \ + wget libboost-all-dev libusb-1.0-0-dev python3-setuptools \ + python3-pip python3-setuptools python3-pip python3-numpy \ + python3-mako python3-requests \ + cmake build-essential ca-certificates && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +RUN wget https://github.com/EttusResearch/uhd/archive/v${UHD_TAG}.tar.gz \ + -O uhd.tar.gz && tar -xvzf uhd.tar.gz + +RUN mkdir uhd-${UHD_TAG}/host/build +WORKDIR uhd-${UHD_TAG}/host/build +RUN cmake -DENABLE_PYTHON_API=ON -DENABLE_PYTHON3=ON ../ +RUN make && make test && make install +RUN python3 /usr/local/lib/uhd/utils/uhd_images_downloader.py + +FROM ubuntu + +# Copy just the necessities to run B2xx with python3 +COPY --from=build /usr/local/lib/libuhd.so* /usr/local/lib/ +COPY --from=build /usr/local/lib/uhd/ /usr/local/lib/uhd/ +COPY --from=build /usr/local/lib/python3/dist-packages/uhd/ /usr/lib/python3/dist-packages/uhd/ +COPY --from=build /usr/local/include/uhd.h /usr/local/include/ +COPY --from=build /usr/local/include/uhd/ /usr/local/include/uhd/ +COPY --from=build /usr/local/bin/uhd_* /usr/local/bin/ +COPY --from=build /usr/local/share/uhd/images/usrp_b2* /usr/local/share/uhd/images/ + +RUN apt-get update -q && \ + DEBIAN_FRONTEND=noninteractive \ + apt-get install -qy --no-install-recommends \ + libboost-date-time1.65.1 libboost-filesystem1.65.1 \ + libboost-python1.65.1 libboost-regex1.65.1 \ + libboost-serialization1.65.1 libboost-system1.65.1 \ + libboost-thread1.65.1 libboost-program-options1.65.1 \ + libusb-1.0-0 libpython3.6 python3-setuptools python3-pip \ + python3-numpy && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +CMD /usr/bin/python3