FROM docker.io/library/ubuntu:22.04 as base ENV LLVM_SYSROOT=/opt/llvm/ FROM base as toolchain ENV LLVM_MAJOR=17 ENV LLVM_VERSION=${LLVM_MAJOR}.0.6 ENV LLVM_DIRNAME=clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-22.04 ENV LLVM_FILENAME=${LLVM_DIRNAME}.tar.xz RUN apt-get update && \ apt-get install -y \ curl \ xz-utils RUN mkdir -p $LLVM_SYSROOT/bin/ $LLVM_SYSROOT/lib/ RUN curl -O -L https://github.com/llvm/llvm-project/releases/download/llvmorg-$LLVM_VERSION/$LLVM_FILENAME RUN tar -C $LLVM_SYSROOT --strip-components=1 -xJf $LLVM_FILENAME \ $LLVM_DIRNAME/bin/clang \ $LLVM_DIRNAME/bin/clang++ \ $LLVM_DIRNAME/bin/clang-cl \ $LLVM_DIRNAME/bin/clang-$LLVM_MAJOR \ $LLVM_DIRNAME/bin/lld \ $LLVM_DIRNAME/bin/ld.lld \ $LLVM_DIRNAME/lib/clang/ FROM base COPY --from=toolchain $LLVM_SYSROOT $LLVM_SYSROOT # Need to install curl for hendrikmuhs/ccache-action # Need nodejs for some of the GitHub actions. # Need perl-modules for clang analyzer tests. RUN apt-get update && \ apt-get install -y \ binutils \ cmake \ curl \ libstdc++-11-dev \ ninja-build \ nodejs \ perl-modules \ python3-psutil ENV LLVM_SYSROOT=$LLVM_SYSROOT ENV PATH=${LLVM_SYSROOT}/bin:${PATH}