# ===----------------------------------------------------------------------===## # # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. # See https://llvm.org/LICENSE.txt for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # # ===----------------------------------------------------------------------===## # # This file defines the base image we use for Linux testing using Github Actions. # From the root of the monorepo, this image can be built with: # # $ docker build --file libcxx/utils/ci/docker/linux-builder-base.dockerfile \ # --build-arg GCC_HEAD_VERSION= \ # --build-arg LLVM_HEAD_VERSION= . # # This image also gets built on every push to `main` that modifies these Docker # files, and can be found at ghcr.io/libcxx/libcxx-linux-builder-base . FROM docker.io/library/ubuntu:noble # Changing this file causes a rebuild of the image in a GitHub action. However, it does not cause # the CI runners to switch to that image automatically, that must be done by updating the image used # by the libc++ self-hosted runners in llvm-zorg. The date uses the ISO format YYYY-MM-DD. RUN echo "Last forced update executed on 2026-01-07." # Make sure apt-get doesn't try to prompt for stuff like our time zone, etc. ENV DEBIAN_FRONTEND=noninteractive # populated in the docker-compose file ARG GCC_HEAD_VERSION ENV GCC_HEAD_VERSION=${GCC_HEAD_VERSION} # populated in the docker-compose file ARG LLVM_HEAD_VERSION ENV LLVM_HEAD_VERSION=${LLVM_HEAD_VERSION} # Install sudo and setup passwordless sudo. RUN <, and ToT, which are the ones we support. # We also install because we need to support the "latest-1" of the # current LLVM release branch, which is effectively the of the # tip-of-trunk LLVM. For example, after branching LLVM 14 but before branching # LLVM 15, we still need to have Clang 12 in this Docker image because the LLVM # 14 release branch CI uses it. The tip-of-trunk CI will never use Clang 12, # though. RUN <