37 lines
1.5 KiB
Docker
37 lines
1.5 KiB
Docker
# syntax=docker/dockerfile:1
|
|
|
|
FROM ubuntu:mantic
|
|
|
|
RUN --mount=type=bind,source=./install-dependencies.sh,target=/install-dependencies.sh \
|
|
apt-get update && apt-get install -y \
|
|
curl \
|
|
gnupg \
|
|
&& echo "deb http://apt.llvm.org/mantic/ llvm-toolchain-mantic-17 main" \
|
|
>> /etc/apt/sources.list.d/llvm.list \
|
|
&& echo "deb http://apt.llvm.org/mantic/ llvm-toolchain-mantic-18 main" \
|
|
>> /etc/apt/sources.list.d/llvm.list \
|
|
&& curl -sSL https://apt.llvm.org/llvm-snapshot.gpg.key -o /etc/apt/trusted.gpg.d/apt.llvm.org.asc \
|
|
&& apt-get update && apt-get install -y \
|
|
build-essential \
|
|
clang-17 \
|
|
clang-18 \
|
|
clang-tools-18 \
|
|
gcc-12 \
|
|
g++-12 \
|
|
gcc-13 \
|
|
g++-13 \
|
|
pandoc \
|
|
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12 \
|
|
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12 \
|
|
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 13 \
|
|
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 13 \
|
|
&& update-alternatives --install /usr/bin/clang clang /usr/bin/clang-17 17 \
|
|
&& update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-17 17 \
|
|
&& update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 18 \
|
|
&& update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 18 \
|
|
&& bash ./install-dependencies.sh \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
CMD ["/bin/bash"]
|