diff --git a/.docker/Dockerfile.debian b/.docker/Dockerfile.debian new file mode 100644 index 00000000..88dedaa7 --- /dev/null +++ b/.docker/Dockerfile.debian @@ -0,0 +1,75 @@ +# syntax=docker/dockerfile:1 +ARG ARCH=amd64 +FROM $ARCH/debian:testing +RUN apt update +RUN apt upgrade -y +RUN apt install -y \ + bash-completion \ + wget \ + curl \ + vim \ + less +RUN apt install -y \ + gcc \ + g++ \ + gcc-12 \ + g++-12 \ + gcc-13 \ + g++-13 \ + gcc-14 \ + g++-14 \ + clang \ + clang-17 \ + clang-18 \ + clang-19 \ + git \ + zstd \ + ccache \ + ninja-build \ + cmake \ + make \ + bison \ + flex \ + ronn \ + fuse3 \ + pkg-config \ + binutils-dev \ + libacl1-dev \ + libarchive-dev \ + libbenchmark-dev \ + libboost-chrono-dev \ + libboost-context-dev \ + libboost-filesystem-dev \ + libboost-iostreams-dev \ + libboost-program-options-dev \ + libboost-regex-dev \ + libboost-system-dev \ + libboost-thread-dev \ + libbrotli-dev \ + libevent-dev \ + libhowardhinnant-date-dev \ + libjemalloc-dev \ + libdouble-conversion-dev \ + libiberty-dev \ + liblz4-dev \ + liblzma-dev \ + libzstd-dev \ + libxxhash-dev \ + libmagic-dev \ + libparallel-hashmap-dev \ + librange-v3-dev \ + libssl-dev \ + libunwind-dev \ + libdwarf-dev \ + libelf-dev \ + libfmt-dev \ + libfuse-dev \ + libfuse3-dev \ + libgoogle-glog-dev \ + libutfcpp-dev \ + libflac++-dev \ + nlohmann-json3-dev \ + xz-utils +RUN useradd -g users -u 1000 -m mhx +USER mhx +ENTRYPOINT /workspace/.docker/build-linux.sh diff --git a/.docker/Makefile b/.docker/Makefile index 56a1655f..8caae801 100644 --- a/.docker/Makefile +++ b/.docker/Makefile @@ -1,4 +1,5 @@ IMAGE_UBUNTU="dwarfs-buildenv" +IMAGE_DEBIAN="dwarfs-buildenv-debian" IMAGE_ALPINE="dwarfs-buildenv-alpine" IMAGE_ALPINE_RISCV="dwarfs-buildenv-alpine-riscv64" IMAGE_UBUNTU2204="dwarfs-buildenv-ubuntu2204" @@ -26,6 +27,12 @@ run: build_arm: docker build -f Dockerfile.ubuntu -t $(IMAGE_UBUNTU) --build-arg ARCH=arm64v8 . +build_debian: + docker build -f Dockerfile.debian -t $(IMAGE_DEBIAN) . + +run_debian: + @docker run $(COMMON_RUN_OPTS) $(IMAGE_DEBIAN) + build_alpine: docker build -f Dockerfile.alpine -t $(IMAGE_ALPINE) . diff --git a/.docker/build-linux.sh b/.docker/build-linux.sh index 909ebada..77229cba 100755 --- a/.docker/build-linux.sh +++ b/.docker/build-linux.sh @@ -111,7 +111,7 @@ CMAKE_ARGS="${CMAKE_TOOL_ARGS}" case "-$BUILD_TYPE-" in *-gcc-*) case "-$BUILD_DIST-" in - *-ubuntu-*) + *-ubuntu-*|*-debian-*) export CC=gcc$GCC_VERSION CXX=g++$GCC_VERSION ;; esac @@ -122,7 +122,7 @@ case "-$BUILD_TYPE-" in ;; *-clang-*) case "-$BUILD_DIST-" in - *-ubuntu-*|*-alpine-*) + *-ubuntu-*|*-debian-*|*-alpine-*) export CC=clang$CLANG_VERSION CXX=clang++$CLANG_VERSION ;; *) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a09af273..991a44ea 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -146,6 +146,12 @@ jobs: dist: fedora build_type: gcc-release-shared-ninja-split include: + - arch: amd64 + dist: debian + build_type: gcc-release-make-full + - arch: amd64 + dist: debian + build_type: clang-debug-shared-ninja-split - arch: amd64 dist: ubuntu build_type: clang-reldbg-shared-asan-ninja