diff --git a/Dockerfile b/Dockerfile index 43e1c88..8386d80 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ - FROM ubuntu:bionic +FROM ubuntu:bionic RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ autoconf \ @@ -132,3 +132,44 @@ run ./build_sqlite.sh #git-lfs copy git-lfs /usr/bin/ 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 \ + ethtool \ + gcc-multilib \ + libc6-dev-i386 \ + libpcap0.8-dev \ + libtool-bin \ + && 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 + +########################