[libcxx] [llvm] [libc++][Android] Fix Dockerfile (PR #154856)

Ryan Prichard via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 25 15:51:24 PDT 2025


https://github.com/rprichard updated https://github.com/llvm/llvm-project/pull/154856

>From 3c4097afd691b07a85ceb3d87ae1e144ff34509f Mon Sep 17 00:00:00 2001
From: Ryan Prichard <rprichard at google.com>
Date: Thu, 21 Aug 2025 16:16:35 -0700
Subject: [PATCH 1/4] [libc++][Android] Fix Dockerfile

In docker-compose.yml, add *image_versions arguments for the
android-buildkite-builder service, so that ACTIONS_BASE_IMAGE is set
(to builder-base). This will also set the BASE_IMAGE, which we don't
really want, because this service uses ubuntu:noble instead of the
ubuntu:jammy default, but that's OK because the setting is successfully
overridden.

In vendor/android/run-buildbot-container, use the correct ghcr.io
Docker path (ghcr.io/llvm/libcxx-android-builder). (This Docker image
doesn't actually exist at ghcr.io (yet), but it is the name produced
by the Docker compose file.)
---
 libcxx/utils/ci/docker-compose.yml                    | 2 +-
 libcxx/utils/ci/vendor/android/run-buildbot-container | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libcxx/utils/ci/docker-compose.yml b/libcxx/utils/ci/docker-compose.yml
index ccaee8c896ded..44f9e6354ff51 100644
--- a/libcxx/utils/ci/docker-compose.yml
+++ b/libcxx/utils/ci/docker-compose.yml
@@ -37,4 +37,4 @@ services:
         ANDROID_CLANG_VERSION: r563880
         ANDROID_CLANG_PREBUILTS_COMMIT: 6ae4184bb8706f9731569b9a0a82be3fcdcb951c
         ANDROID_SYSROOT_COMMIT: f8b85cc5262c6e5cbc9a92c1bab2b18b32a4c63f
-        <<: *compiler_versions
+        <<: [*image_versions, *compiler_versions]
diff --git a/libcxx/utils/ci/vendor/android/run-buildbot-container b/libcxx/utils/ci/vendor/android/run-buildbot-container
index 7b5d9a4cc3fe7..81c719b1f8b96 100755
--- a/libcxx/utils/ci/vendor/android/run-buildbot-container
+++ b/libcxx/utils/ci/vendor/android/run-buildbot-container
@@ -27,5 +27,5 @@ if [ -S /var/run/docker.sock ]; then
     DOCKER_OPTIONS+=(--volume /var/run/docker.sock:/var/run/docker.sock)
 fi
 
-docker run "${DOCKER_OPTIONS[@]}" ghcr.io/libcxx/android-buildkite-builder \
+docker run "${DOCKER_OPTIONS[@]}" ghcr.io/llvm/libcxx-android-builder \
     bash -c 'git config --global --add safe.directory /llvm; (/opt/android/container-setup.sh && exec bash)'

>From 512c6a2986e9d18b0b53e1b41c9051da6ac86b3f Mon Sep 17 00:00:00 2001
From: Ryan Prichard <rprichard at google.com>
Date: Thu, 21 Aug 2025 16:29:31 -0700
Subject: [PATCH 2/4] Reenable Android Docker image build.

---
 .github/workflows/libcxx-build-containers.yml | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/libcxx-build-containers.yml b/.github/workflows/libcxx-build-containers.yml
index 43c446a2c02ce..45b625605e134 100644
--- a/.github/workflows/libcxx-build-containers.yml
+++ b/.github/workflows/libcxx-build-containers.yml
@@ -40,11 +40,11 @@ jobs:
       env:
         TAG: ${{ github.sha }}
 
-    # - name: Build the Android builder image
-    #   working-directory: libcxx/utils/ci
-    #   run: docker compose build android-buildkite-builder
-    #   env:
-    #     TAG: ${{ github.sha }}
+    - name: Build the Android builder image
+      working-directory: libcxx/utils/ci
+      run: docker compose build android-buildkite-builder
+      env:
+        TAG: ${{ github.sha }}
 
     - name: Log in to GitHub Container Registry
       uses: docker/login-action at 9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0

>From 18a51af785da64751615ab2d1f8424537b6dc076 Mon Sep 17 00:00:00 2001
From: Ryan Prichard <rprichard at google.com>
Date: Mon, 25 Aug 2025 15:43:54 -0700
Subject: [PATCH 3/4] Reenable Android image push

---
 .github/workflows/libcxx-build-containers.yml | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/libcxx-build-containers.yml b/.github/workflows/libcxx-build-containers.yml
index 45b625605e134..9a5ca0fbed9e7 100644
--- a/.github/workflows/libcxx-build-containers.yml
+++ b/.github/workflows/libcxx-build-containers.yml
@@ -62,10 +62,10 @@ jobs:
       env:
         TAG: ${{ github.sha }}
 
-    # - name: Push the Android builder image
-    #   if: github.event_name == 'push'
-    #   working-directory: libcxx/utils/ci
-    #   run: |
-    #     docker compose push android-buildkite-builder
-    #   env:
-    #     TAG: ${{ github.sha }}
+    - name: Push the Android builder image
+      if: github.event_name == 'push'
+      working-directory: libcxx/utils/ci
+      run: |
+        docker compose push android-buildkite-builder
+      env:
+        TAG: ${{ github.sha }}

>From 713ea46c23e2f2737907562635e9ed265b33e026 Mon Sep 17 00:00:00 2001
From: Ryan Prichard <rprichard at google.com>
Date: Mon, 25 Aug 2025 15:50:59 -0700
Subject: [PATCH 4/4] Try to change the default Docker location

https://evodify.com/change-docker-storage-location/
---
 .github/workflows/libcxx-build-containers.yml | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/.github/workflows/libcxx-build-containers.yml b/.github/workflows/libcxx-build-containers.yml
index 9a5ca0fbed9e7..520ec04b6185b 100644
--- a/.github/workflows/libcxx-build-containers.yml
+++ b/.github/workflows/libcxx-build-containers.yml
@@ -32,6 +32,14 @@ jobs:
     steps:
     - uses: actions/checkout at 11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
 
+    # The default Docker storage location for GitHub Actions doesn't have
+    # enough disk space, so change it to /mnt, which has more disk space.
+    - name: Change Docker storage location
+      run: |
+        sudo mkdir /mnt/docker
+        echo '{ "data-root": "/mnt/docker" }' | sudo tee /etc/docker/daemon.json
+        sudo systemctl restart docker
+
     - name: Build the Linux builder image
       working-directory: libcxx/utils/ci
       run: |



More information about the llvm-commits mailing list