|
| 1 | +FROM ubuntu:20.04 |
| 2 | + |
| 3 | +SHELL ["/bin/bash", "-euo", "pipefail", "-c"] |
| 4 | +ENV DEBIAN_FRONTEND=noninteractive |
| 5 | +RUN apt-get update &&\ |
| 6 | + apt-get install -y --no-install-recommends \ |
| 7 | + git wget ca-certificates software-properties-common \ |
| 8 | + build-essential meson cmake \ |
| 9 | + google-perftools \ |
| 10 | + libaio-dev \ |
| 11 | + libboost1.71-all-dev \ |
| 12 | + libdouble-conversion-dev \ |
| 13 | + libdwarf-dev \ |
| 14 | + libgflags-dev \ |
| 15 | + libgmock-dev \ |
| 16 | + libgoogle-glog-dev \ |
| 17 | + libgoogle-perftools-dev \ |
| 18 | + libgtest-dev \ |
| 19 | + liblz4-dev \ |
| 20 | + liblzma-dev \ |
| 21 | + libunwind-dev \ |
| 22 | + libuv1-dev \ |
| 23 | + libssl-dev \ |
| 24 | + gnupg &&\ |
| 25 | + apt-get clean &&\ |
| 26 | + rm -rf /var/lib/apt/lists/* |
| 27 | + |
| 28 | +RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key |tee /etc/apt/trusted.gpg.d/llvm.asc &&\ |
| 29 | + add-apt-repository -y "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main" &&\ |
| 30 | + apt-get update && apt-get install -y clang-format-14 clang-14 clang-tidy-14 lld-14 libclang-rt-14-dev gcc-10 g++-10 &&\ |
| 31 | + apt-get clean &&\ |
| 32 | + rm -rf /var/lib/apt/lists/* |
| 33 | + |
| 34 | +ARG FDB_VERSION=7.3.63 |
| 35 | +RUN FDB_ARCH_SUFFIX=$(dpkg --print-architecture) && \ |
| 36 | + case "${FDB_ARCH_SUFFIX}" in \ |
| 37 | + amd64) ;; \ |
| 38 | + arm64) FDB_ARCH_SUFFIX="aarch64" ;; \ |
| 39 | + *) echo "Unsupported architecture: ${FDB_ARCH_SUFFIX}"; exit 1 ;; \ |
| 40 | + esac && \ |
| 41 | + FDB_CLIENT_URL="https://github.com/apple/foundationdb/releases/download/${FDB_VERSION}/foundationdb-clients_${FDB_VERSION}-1_${FDB_ARCH_SUFFIX}.deb" && \ |
| 42 | + FDB_SERVER_URL="https://github.com/apple/foundationdb/releases/download/${FDB_VERSION}/foundationdb-server_${FDB_VERSION}-1_${FDB_ARCH_SUFFIX}.deb" && \ |
| 43 | + wget -q "${FDB_CLIENT_URL}" && \ |
| 44 | + # wget -q "${FDB_SERVER_URL}" && \ |
| 45 | + dpkg -i foundationdb-clients_${FDB_VERSION}-1_${FDB_ARCH_SUFFIX}.deb && \ |
| 46 | + # dpkg -i foundationdb-server_${FDB_VERSION}-1_${FDB_ARCH_SUFFIX}.deb && \ |
| 47 | + rm foundationdb-clients_${FDB_VERSION}-1_${FDB_ARCH_SUFFIX}.deb |
| 48 | + # foundationdb-server_${FDB_VERSION}-1_${FDB_ARCH_SUFFIX}.deb |
| 49 | + |
| 50 | +ARG LIBFUSE_VERSION=3.16.2 |
| 51 | +ARG LIBFUSE_DOWNLOAD_URL=https://github.com/libfuse/libfuse/releases/download/fuse-${LIBFUSE_VERSION}/fuse-${LIBFUSE_VERSION}.tar.gz |
| 52 | +RUN wget -O- ${LIBFUSE_DOWNLOAD_URL} |\ |
| 53 | + tar -xzvf - -C /tmp &&\ |
| 54 | + cd /tmp/fuse-${LIBFUSE_VERSION} &&\ |
| 55 | + mkdir build && cd build &&\ |
| 56 | + meson setup .. && meson configure -D default_library=both &&\ |
| 57 | + ninja && ninja install &&\ |
| 58 | + rm -f -r /tmp/fuse-${LIBFUSE_VERSION}* |
| 59 | + |
| 60 | +# Install Rust |
| 61 | +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y |
| 62 | +ENV PATH="/root/.cargo/bin:${PATH}" |
| 63 | + |
| 64 | + |
0 commit comments