FROM docker.io/library/rockylinux:9 # Toolchain and build tools, same as the rocky9 image. RUN dnf install --assumeyes --enablerepo=crb \ autoconf \ automake \ bzip2 \ ca-certificates \ cmake \ curl-minimal \ gcc \ gcc-c++ \ libasan \ gcc-toolset-15-gcc-c++ \ gcc-toolset-15-libasan-devel \ git \ libtool \ make \ ninja-build \ patch \ perl-core \ pkgconf-pkg-config \ rpm-build \ tar \ xz \ which \ epel-release \ && sed \ -e 's!^metalink=!#metalink=!g' \ -e 's!^#baseurl=!baseurl=!g' \ -e 's!https\?://download\.example/pub/epel!https://mirrors.ustc.edu.cn/epel!g' \ -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo \ && dnf install --assumeyes \ makeself \ && dnf upgrade --assumeyes \ && dnf clean all \ && rm -rf /var/cache/dnf RUN git config --global url."https://wangguofang.net/github.com/".insteadOf "https://github.com/" RUN test "$(cmake --version | sed -n '1s/[^0-9]*//p' | cut -d. -f2)" -ge 29 # Libraries come from the distribution (Rocky Linux 9, CRB and EPEL) instead of being built from # source. A package that is not available in these repositories is skipped, not an error. RUN dnf install --assumeyes --enablerepo=crb,epel \ --setopt=skip_missing_names_on_install=True \ --skip-broken \ boost-devel \ cyrus-sasl-devel \ fast_float-devel \ fmt-devel \ folly-devel \ gflags-devel \ glog-devel \ gmock-devel \ gmp-devel \ gnutls-devel \ gtest-devel \ hiredis-devel \ jsoncpp-devel \ json-c-devel \ libaio-devel \ libcurl-devel \ libdwarf-devel \ libevent-devel \ libmaxminddb-devel \ libsodium-devel \ liburing-devel \ libuuid-devel \ libxml2-devel \ libyaml-devel \ libzstd-devel \ log4cplus-devel \ lz4-devel \ magic_enum-devel \ nettle-devel \ numactl-devel \ openssl-devel \ protobuf-compiler \ protobuf-devel \ rapidjson-devel \ librdkafka-devel \ snappy-devel \ spdlog-devel \ thrift-devel \ tsl-sparse-map-devel \ xsimd-devel \ xxhash-devel \ zeromq-devel \ czmq-devel \ zlib-devel \ libarrow-devel \ parquet-libs-devel \ && dnf clean all \ && rm -rf /var/cache/dnf CMD ["/bin/bash"]