diff --git a/.docker/Dockerfile.fedora b/.docker/Dockerfile.fedora new file mode 100644 index 00000000..d70b8202 --- /dev/null +++ b/.docker/Dockerfile.fedora @@ -0,0 +1,48 @@ +# syntax=docker/dockerfile:1 +ARG ARCH=amd64 +FROM $ARCH/fedora:rawhide +RUN dnf update -y +RUN dnf install -y \ + gcc \ + g++ \ + clang \ + man \ + pip \ + git \ + vim \ + zstd \ + ccache \ + ninja-build \ + cmake \ + make \ + bison \ + flex \ + rubygem-ronn \ + fuse \ + fuse3 \ + fuse-devel \ + fuse3-devel \ + pkg-config \ + binutils-devel \ + libarchive-devel \ + google-benchmark \ + boost-devel \ + brotli-devel \ + libevent-devel \ + openssl-devel \ + fmt-devel \ + date-devel \ + jemalloc-devel \ + double-conversion-devel \ + lz4-devel \ + xz-devel \ + libunwind-devel \ + libdwarf-devel \ + glog-devel \ + flac-devel \ + utf8cpp-devel \ + bash-completion +RUN pip install mistletoe +RUN useradd -g users -u 1000 -m mhx +USER mhx +ENTRYPOINT /bin/bash diff --git a/.docker/Makefile b/.docker/Makefile index ea8306ff..e7b09de0 100644 --- a/.docker/Makefile +++ b/.docker/Makefile @@ -1,4 +1,5 @@ IMAGE="dwarfs-buildenv" +IMAGE_FEDORA="dwarfs-buildenv-fedora" ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) NPROC:=$(shell nproc) @@ -18,3 +19,16 @@ run: --mount type=bind,source="$(ROOT_DIR)"/../@docker-build,target=/home/ubuntu/build \ --env CCACHE_DIR=/ccache --env CTEST_PARALLEL_LEVEL=$(NPROC) \ --entrypoint /bin/bash $(IMAGE) + +build_fedora: + docker build -f Dockerfile.fedora -t $(IMAGE_FEDORA) . + +run_fedora: + @docker run -it --rm \ + --cap-add SYS_ADMIN --device /dev/fuse --privileged \ + --mount type=bind,source="$(ROOT_DIR)"/..,target=/workspace,readonly \ + --mount type=bind,source="$(ROOT_DIR)"/../@docker-ccache,target=/ccache \ + --mount type=bind,source="$(ROOT_DIR)"/../@docker-home,target=/home/mhx \ + --mount type=bind,source="$(ROOT_DIR)"/../@docker-build,target=/home/mhx/build \ + --env CCACHE_DIR=/ccache --env CTEST_PARALLEL_LEVEL=$(NPROC) \ + --entrypoint /bin/bash $(IMAGE_FEDORA)