From 6452e9579184cc1d0467e911ec40d869372912b7 Mon Sep 17 00:00:00 2001 From: pfisher Date: Thu, 22 Aug 2019 10:08:55 -0400 Subject: [PATCH 1/2] added onload drivers to container --- Dockerfile | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 43e1c88..d732d59 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,44 @@ - FROM ubuntu:bionic + +# Dockerfile - Ubuntu Bionic Beaver +# +# Installs Solarflare's OpenOnload into Ubuntu Bionic. +# +# OpenOnload web page: +# https://www.openonload.org/ +# +# To expose the host and onload to this container, run like this: +# +# docker run --net=host --device=/dev/onload --device=/dev/onload_epoll --device=/dev/onload_cplane -it ONLOAD_ENABLED_IMAGE_ID [COMMAND] [ARG...] +# +# NOTE: The host's OpenOnload version must be the same as the container's. +# +# Copyright (c) 2018 Neomantra BV +# Released under the MIT License, see LICENSE.txt +# + +##### Onload Stuff ##### + +ARG ONLOAD_DEBIAN_BASE="ubuntu" +ARG ONLOAD_DEBIAN_TAG="bionic" + +FROM ${ONLOAD_DEBIAN_BASE}:${ONLOAD_DEBIAN_TAG} + +MAINTAINER Evan Wies + +# Onload version and its md5sum +ARG ONLOAD_VERSION="201811-u1" +ARG ONLOAD_MD5SUM="357e64862aa4145e49d218fd04e63407" + +# When ONLOAD_WITHZF is non-empty, the build includes Solarflare's TCPDirect library. +# Default is to exclude it. +ARG ONLOAD_WITHZF + +# 1) Install OpenOnload build dependencies +# 2) Download and verify OpenOnload from Solarflare's site +# 3) Extract, build, and install onload +# 4) Cleanup + +######################## RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ autoconf \ @@ -26,7 +66,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ liblttng-ust-dev \ libncurses5-dev \ libreadline-dev \ - libtool \ + libtool \ libz-dev \ llvm \ locales \ @@ -132,3 +172,41 @@ run ./build_sqlite.sh #git-lfs copy git-lfs /usr/bin/ run chmod +x /usr/bin/git-lfs && git lfs install + +##### Onload Stuff ##### + +RUN \ + DEBIAN_FRONTEND=noninteractive apt-get update -y \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + ca-certificates \ + coreutils \ + ethtool \ + gcc-multilib \ + kmod \ + libc6-dev-i386 \ + libpcap0.8-dev \ + libtool-bin \ + patch \ + perl \ + python-dev \ + tar \ + wget \ + && cd /tmp \ + && curl -fSL https://www.openonload.org/download/openonload-${ONLOAD_VERSION}.tgz -o /tmp/openonload-${ONLOAD_VERSION}.tgz \ + && echo "${ONLOAD_MD5SUM} openonload-${ONLOAD_VERSION}.tgz" | md5sum --check \ + && tar -zxf openonload-${ONLOAD_VERSION}.tgz \ + && cd /tmp/openonload-${ONLOAD_VERSION} \ + && cd scripts \ + && ./onload_build --user \ + && ./onload_install --userfiles --nobuild \ + && cd /tmp \ + && rm -rf openonload-${ONLOAD_VERSION}.tgz openonload-${ONLOAD_VERSION} \ + && if [ -z ${ONLOAD_WITHZF} ] ; then rm -rf /usr/include/zf /usr/bin/zf_stackdump /usr/bin/zf_debug /usr/lib/x86_64-linux-gnu/zf /usr/lib/x86_64-linux-gnu/libonload_zf* ; fi \ + && DEBIAN_FRONTEND=noninteractive apt-get remove -y --purge \ + curl \ + patch \ + && DEBIAN_FRONTEND=noninteractive apt-get autoremove -y + +# TODO: which apt packages can we remove? + +######################## From 839244243abab3e45934867144934d1825efd2d0 Mon Sep 17 00:00:00 2001 From: pfisher Date: Wed, 28 Aug 2019 12:05:12 -0400 Subject: [PATCH 2/2] some cleanup and moving to put onload stuff at the bottom --- Dockerfile | 67 ++++++++++++------------------------------------------ 1 file changed, 15 insertions(+), 52 deletions(-) diff --git a/Dockerfile b/Dockerfile index d732d59..8386d80 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,44 +1,4 @@ - -# Dockerfile - Ubuntu Bionic Beaver -# -# Installs Solarflare's OpenOnload into Ubuntu Bionic. -# -# OpenOnload web page: -# https://www.openonload.org/ -# -# To expose the host and onload to this container, run like this: -# -# docker run --net=host --device=/dev/onload --device=/dev/onload_epoll --device=/dev/onload_cplane -it ONLOAD_ENABLED_IMAGE_ID [COMMAND] [ARG...] -# -# NOTE: The host's OpenOnload version must be the same as the container's. -# -# Copyright (c) 2018 Neomantra BV -# Released under the MIT License, see LICENSE.txt -# - -##### Onload Stuff ##### - -ARG ONLOAD_DEBIAN_BASE="ubuntu" -ARG ONLOAD_DEBIAN_TAG="bionic" - -FROM ${ONLOAD_DEBIAN_BASE}:${ONLOAD_DEBIAN_TAG} - -MAINTAINER Evan Wies - -# Onload version and its md5sum -ARG ONLOAD_VERSION="201811-u1" -ARG ONLOAD_MD5SUM="357e64862aa4145e49d218fd04e63407" - -# When ONLOAD_WITHZF is non-empty, the build includes Solarflare's TCPDirect library. -# Default is to exclude it. -ARG ONLOAD_WITHZF - -# 1) Install OpenOnload build dependencies -# 2) Download and verify OpenOnload from Solarflare's site -# 3) Extract, build, and install onload -# 4) Cleanup - -######################## +FROM ubuntu:bionic RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ autoconf \ @@ -66,7 +26,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ liblttng-ust-dev \ libncurses5-dev \ libreadline-dev \ - libtool \ + libtool \ libz-dev \ llvm \ locales \ @@ -175,22 +135,27 @@ run chmod +x /usr/bin/git-lfs && git lfs install ##### Onload Stuff ##### +# Onload version and its md5sum +ARG ONLOAD_VERSION="201811-u1" +ARG ONLOAD_MD5SUM="357e64862aa4145e49d218fd04e63407" + +# When ONLOAD_WITHZF is non-empty, the build includes Solarflare's TCPDirect library. +# Default is to exclude it. +ARG ONLOAD_WITHZF + +# 1) Install OpenOnload build dependencies +# 2) Download and verify OpenOnload from Solarflare's site +# 3) Extract, build, and install onload +# 4) Cleanup + RUN \ DEBIAN_FRONTEND=noninteractive apt-get update -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - ca-certificates \ - coreutils \ ethtool \ gcc-multilib \ - kmod \ libc6-dev-i386 \ libpcap0.8-dev \ libtool-bin \ - patch \ - perl \ - python-dev \ - tar \ - wget \ && cd /tmp \ && curl -fSL https://www.openonload.org/download/openonload-${ONLOAD_VERSION}.tgz -o /tmp/openonload-${ONLOAD_VERSION}.tgz \ && echo "${ONLOAD_MD5SUM} openonload-${ONLOAD_VERSION}.tgz" | md5sum --check \ @@ -207,6 +172,4 @@ RUN \ patch \ && DEBIAN_FRONTEND=noninteractive apt-get autoremove -y -# TODO: which apt packages can we remove? - ########################