diff --git a/.docker/docker-0.2.x/Dockerfile b/.docker/docker-0.2.x/Dockerfile new file mode 100644 index 00000000..41971a42 --- /dev/null +++ b/.docker/docker-0.2.x/Dockerfile @@ -0,0 +1,66 @@ +# syntax=docker/dockerfile:1 +ARG ARCH=amd64 +FROM $ARCH/alpine:3.14 +RUN apk update +RUN apk upgrade +RUN apk add --no-cache \ + bash-completion \ + build-base \ + wget \ + curl \ + vim \ + tar \ + ripgrep \ + py3-pip \ + less \ + gcc \ + g++ \ + git \ + ccache \ + samurai \ + cmake \ + make \ + bison \ + flex \ + ronn \ + fuse \ + fuse-dev \ + pkgconf \ + binutils-dev \ + libevent-dev \ + libevent-static \ + linux-headers \ + date-dev \ + range-v3-dev \ + zlib-static \ + libucontext-dev \ + libdwarf-dev \ + elfutils-dev \ + nlohmann-json \ + meson \ + autoconf \ + strace \ + gdb \ + zstd-dev \ + zstd-static \ + lz4-dev \ + lz4-static \ + eudev-dev \ + gtest-dev \ + xz \ + xz-dev \ + boost-dev \ + boost-static \ + sparsehash \ + icu-static \ + openssl-libs-static \ + openssl-dev + +COPY double-conversion-3.1.5.tar.gz /opt/ +COPY fmt-7.1.3.tar.gz /opt/ +COPY fuse-3.10.4.tar.xz /opt/ +COPY glog-0.5.0.tar.gz /opt/ +COPY build_libs.sh /opt/ +RUN bash /opt/build_libs.sh + +ENTRYPOINT /bin/bash diff --git a/.docker/docker-0.2.x/Makefile b/.docker/docker-0.2.x/Makefile new file mode 100644 index 00000000..5a294856 --- /dev/null +++ b/.docker/docker-0.2.x/Makefile @@ -0,0 +1,18 @@ +IMAGE="dwarfs-alpine-old" + +ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) +NPROC:=$(shell nproc) + +COMMON_RUN_OPTS=-it --rm \ + --cap-add SYS_ADMIN --device /dev/fuse --privileged \ + --mount type=bind,source=/home/mhx/git/github/dwarfs,target=/workspace,readonly \ + --mount type=bind,source="$(ROOT_DIR)"/../@ccache,target=/ccache \ + --mount type=bind,source="$(ROOT_DIR)"/../@home,target=/root \ + --env CCACHE_DIR=/ccache --env CTEST_PARALLEL_LEVEL=$(NPROC) \ + --entrypoint /bin/bash + +build: + docker build -t $(IMAGE) . + +run: + @docker run $(COMMON_RUN_OPTS) $(IMAGE) diff --git a/.docker/docker-0.2.x/build_libs.sh b/.docker/docker-0.2.x/build_libs.sh new file mode 100644 index 00000000..925bcaf2 --- /dev/null +++ b/.docker/docker-0.2.x/build_libs.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e + +cd /opt +mkdir build +cd build +tar xf /opt/double-conversion-3.1.5.tar.gz +cd double-conversion-3.1.5 +mkdir build +cd build +cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=OFF +make -j$(nproc) +make install + +cd /opt/build +tar xf /opt/fmt-7.1.3.tar.gz +cd fmt-7.1.3 +mkdir build +cd build +cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=OFF -DFMT_DOC=OFF -DFMT_TEST=OFF +make -j$(nproc) +make install + +cd /opt/build +tar xf /opt/fuse-3.10.4.tar.xz +cd fuse-3.10.4 +mkdir build +cd build +meson setup .. --default-library=static --prefix=/usr/local +meson configure -D utils=false -D tests=false -D examples=false +meson setup --reconfigure .. +ninja +ninja install + +cd /opt/build +tar xf /opt/glog-0.5.0.tar.gz +cd glog-0.5.0 +mkdir build +cd build +cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF +make -j$(nproc) +make install + +cd /opt +rm -rf build