From ba53d285172673b22d90e8dfb553b947b443650f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 25 Sep 2025 11:29:18 +0200 Subject: [PATCH 1/4] ansible: add Ubuntu 24.04 Dockerfile configs with Clang 19 Refs: https://github.com/nodejs/build/issues/4144 --- .../docker/templates/ubuntu2404.Dockerfile.j2 | 49 ++++++ .../templates/ubuntu2404_armv7l.Dockerfile.j2 | 46 +++++ .../ubuntu2404_sharedlibs.Dockerfile.j2 | 160 ++++++++++++++++++ 3 files changed, 255 insertions(+) create mode 100644 ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 create mode 100644 ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 create mode 100644 ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 diff --git a/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 new file mode 100644 index 000000000..50ca9d747 --- /dev/null +++ b/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 @@ -0,0 +1,49 @@ +FROM ubuntu:24.04 + +ENV LC_ALL C +ENV USER {{ server_user }} +ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }} +ENV SHELL /bin/bash +ENV HOME /home/{{ server_user }} +ENV PATH /usr/lib/ccache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe +ENV NODE_TEST_DIR /home/{{ server_user }}/tmp +ENV OSTYPE linux-gnu +ENV OSVARIANT docker +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y \ + ccache \ + g++ \ + gcc \ + clang-19 \ + git \ + openjdk-21-jre-headless \ + curl \ + python3-pip \ + python-is-python3 \ + libfontconfig1 \ + libtool \ + automake + +RUN pip3 install tap2junit=={{ tap2junit_version }} + +RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} + +RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} + +VOLUME /home/{{ server_user }}/ /home/{{ server_user }}/.ccache + +USER iojs:iojs + +ENV CCACHE_TEMPDIR /home/iojs/.ccache/{{ item.name }} + +CMD cd /home/iojs \ + && curl https://ci.nodejs.org/jnlpJars/agent.jar -O \ + && java -Xmx{{ server_ram|default('128m') }} \ + -jar /home/{{ server_user }}/agent.jar \ + -url {{ jenkins_url }} \ + -name {{ item.name }} \ + -secret {{ item.secret }} diff --git a/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 new file mode 100644 index 000000000..400c1e714 --- /dev/null +++ b/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 @@ -0,0 +1,46 @@ +FROM arm32v7/ubuntu:24.04 + +ENV LC_ALL C +ENV USER {{ server_user }} +ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }} +ENV SHELL /bin/bash +ENV HOME /home/{{ server_user }} +ENV PATH /usr/lib/ccache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe +ENV NODE_TEST_DIR /home/{{ server_user }}/tmp +ENV OSTYPE linux-gnu +ENV OSVARIANT docker +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} +ENV DEBIAN_FRONTEND noninteractive +RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y ccache \ + g++ \ + gcc \ + clang-19 \ + git \ + openjdk-21-jre-headless \ + pkg-config \ + curl \ + python3-pip \ + python-is-python3 \ + libfontconfig1 + +RUN pip3 install tap2junit=={{ tap2junit_version }} + +RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} + +RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} + +VOLUME /home/{{ server_user }}/ /home/{{ server_user }}/.ccache + +USER iojs:iojs + +ENV CCACHE_TEMPDIR /home/iojs/.ccache/{{ item.name }} + +CMD cd /home/iojs \ + && curl https://ci.nodejs.org/jnlpJars/agent.jar -O \ + && java -Xmx{{ server_ram|default('128m') }} \ + -jar /home/{{ server_user }}/agent.jar \ + -url {{ jenkins_url }} \ + -name {{ item.name }} \ + -secret {{ item.secret }} diff --git a/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 new file mode 100644 index 000000000..9ca6c2484 --- /dev/null +++ b/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 @@ -0,0 +1,160 @@ +FROM ubuntu:24.04 + +ENV LC_ALL C +ENV USER {{ server_user }} +ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }} +ENV SHELL /bin/bash +ENV HOME /home/{{ server_user }} +ENV PATH /usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe +ENV NODE_TEST_DIR /home/{{ server_user }}/tmp +ENV OSTYPE linux-gnu +ENV OSVARIANT docker +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update && apt-get install apt-utils -y && \ + apt-get dist-upgrade -y && apt-get install -y \ + ccache \ + g++ \ + gcc \ + clang-19 \ + git \ + openjdk-21-jre-headless \ + pkg-config \ + curl \ + python3-pip \ + python-is-python3 \ + libfontconfig1 \ + libtool \ + automake + +RUN pip3 install tap2junit=={{ tap2junit_version }} + +RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} + +RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} + +ENV ICU69DIR=/opt/icu-69.1 \ + ICU71DIR=/opt/icu-71.1 \ + ICU73DIR=/opt/icu-73.2 + +RUN for ICU_ENV in $(env | grep ICU..DIR); do \ + ICU_PREFIX=$(echo $ICU_ENV | cut -d '=' -f 2) && \ + ICU_VERSION=$(echo $ICU_PREFIX | cut -d '-' -f 2) && \ + ICU_MAJOR=$(echo $ICU_VERSION | cut -d '.' -f 1) && \ + ICU_MINOR=$(echo $ICU_VERSION | cut -d '.' -f 2) && \ + mkdir -p /tmp/icu-$ICU_VERSION && \ + cd /tmp/icu-$ICU_VERSION && \ + curl -sL "https://github.com/unicode-org/icu/releases/download/release-$ICU_MAJOR-$ICU_MINOR/icu4c-${ICU_MAJOR}_$ICU_MINOR-src.tgz" | tar zxv --strip=1 && \ + cd source && \ + ./runConfigureICU Linux --prefix=$ICU_PREFIX && \ + make -j $JOBS && \ + make install && \ + rm -rf /tmp/icu-$ICU_VERSION; \ + done + +ENV OPENSSL111VER 1.1.1w +ENV OPENSSL111DIR /opt/openssl-$OPENSSL111VER + +RUN mkdir -p /tmp/openssl_$OPENSSL111VER && \ + cd /tmp/openssl_$OPENSSL111VER && \ + curl -sL https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-$OPENSSL111VER.tar.gz | tar zxv --strip=1 && \ + ./config --prefix=$OPENSSL111DIR && \ + make -j $JOBS && \ + make install && \ + rm -rf /tmp/openssl_$OPENSSL111VER + +# OpenSSL FIPS validation occurs post-release, and not for every version. +# See https://www.openssl.org/docs/fips.html and the version documented in the +# certificate and security policy. +ENV OPENSSL30FIPSVER 3.0.8 +ENV OPENSSL30FIPSDIR /opt/openssl-$OPENSSL30FIPSVER-fips + +RUN mkdir -p /tmp/openssl-$OPENSSL30FIPSVER && \ + cd /tmp/openssl-$OPENSSL30FIPSVER && \ + curl -sL https://github.com/openssl/openssl/releases/download/openssl-$OPENSSL30FIPSVER/openssl-$OPENSSL30FIPSVER.tar.gz | tar zxv --strip=1 && \ + ./config --prefix=$OPENSSL30FIPSDIR enable-fips && \ + make -j $JOBS && \ + make install && \ + rm -rf /tmp/openssl-$OPENSSL30FIPSVER +# Install the FIPS provider. Update OpenSSL config file to enable FIPS. +RUN LD_LIBRARY_PATH=$OPENSSL30FIPSDIR/lib64 $OPENSSL30FIPSDIR/bin/openssl fipsinstall \ + -module $OPENSSL30FIPSDIR/lib64/ossl-modules/fips.so -provider_name fips \ + -out $OPENSSL30FIPSDIR/ssl/fipsmodule.cnf && \ + sed -i -r "s|^# (.include fipsmodule.cnf)|.include $OPENSSL30FIPSDIR\/ssl\/fipsmodule.cnf|g" $OPENSSL30FIPSDIR/ssl/openssl.cnf && \ + sed -i -r '/^providers = provider_sect/a alg_section = evp_properties' $OPENSSL30FIPSDIR/ssl/openssl.cnf && \ + sed -i -r 's/^# (fips = fips_sect)/\1/g' $OPENSSL30FIPSDIR/ssl/openssl.cnf && \ + sed -i -r 's/^# (activate = 1)/\1/g' $OPENSSL30FIPSDIR/ssl/openssl.cnf && \ + echo "\n[evp_properties]\ndefault_properties = \"fips=yes\"\n" >> $OPENSSL30FIPSDIR/ssl/openssl.cnf + +ENV OPENSSL30VER 3.0.14+quic +ENV OPENSSL30DIR /opt/openssl-$OPENSSL30VER + +RUN mkdir -p /tmp/openssl-$OPENSSL30VER && \ + cd /tmp/openssl-$OPENSSL30VER && \ + git clone https://github.com/quictls/openssl.git -b openssl-$OPENSSL30VER --depth 1 && \ + cd openssl && \ + ./config --prefix=$OPENSSL30DIR && \ + make -j $JOBS && \ + make install && \ + rm -rf /tmp/openssl-$OPENSSL30VER + +ENV OPENSSL31VER 3.1.7 +ENV OPENSSL31DIR /opt/openssl-$OPENSSL31VER + +RUN mkdir -p /tmp/openssl-$OPENSSL31VER && \ + cd /tmp/openssl-$OPENSSL31VER && \ + curl -sL https://github.com/openssl/openssl/releases/download/openssl-$OPENSSL31VER/openssl-$OPENSSL31VER.tar.gz | tar zxv --strip=1 && \ + ./config --prefix=$OPENSSL31DIR && \ + make -j $JOBS && \ + make install && \ + rm -rf /tmp/openssl-$OPENSSL31VER + +ENV OPENSSL32VER 3.2.3 +ENV OPENSSL32DIR /opt/openssl-$OPENSSL32VER + +RUN mkdir -p /tmp/openssl-$OPENSSL32VER && \ + cd /tmp/openssl-$OPENSSL32VER && \ + curl -sL https://github.com/openssl/openssl/releases/download/openssl-$OPENSSL32VER/openssl-$OPENSSL32VER.tar.gz | tar zxv --strip=1 && \ + ./config --prefix=$OPENSSL32DIR && \ + make -j $JOBS && \ + make install && \ + rm -rf /tmp/openssl-$OPENSSL32VER + +ENV OPENSSL35VER 3.5.0 +ENV OPENSSL35DIR /opt/openssl-$OPENSSL35VER + +RUN mkdir -p /tmp/openssl-$OPENSSL35VER && \ + cd /tmp/openssl-$OPENSSL35VER && \ + curl -sL https://github.com/openssl/openssl/releases/download/openssl-$OPENSSL35VER/openssl-$OPENSSL35VER.tar.gz | tar zxv --strip=1 && \ + ./config --prefix=$OPENSSL35DIR && \ + make -j $JOBS && \ + make install && \ + rm -rf /tmp/openssl-$OPENSSL35VER + +ENV ZLIBVER 1.2.13 +ENV ZLIB12DIR /opt/zlib_$ZLIBVER + +RUN mkdir -p /tmp/zlib_$ZLIBVER && \ + cd /tmp/zlib_$ZLIBVER && \ + curl -sL https://zlib.net/fossils/zlib-$ZLIBVER.tar.gz | tar zxv --strip=1 && \ + ./configure --prefix=$ZLIB12DIR && \ + make -j $JOBS && \ + make install && \ + rm -rf /tmp/zlib_$ZLIBVER + +VOLUME /home/{{ server_user }}/ /home/{{ server_user }}/.ccache + +USER iojs:iojs + +ENV CCACHE_TEMPDIR /home/iojs/.ccache/{{ item.name }} + +CMD cd /home/iojs \ + && curl https://ci.nodejs.org/jnlpJars/agent.jar -O \ + && java -Xmx{{ server_ram|default('128m') }} \ + -jar /home/{{ server_user }}/agent.jar \ + -url {{ jenkins_url }} \ + -name {{ item.name }} \ + -secret {{ item.secret }} From d0936849c6ec36b7840915801be74d25c0519637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 25 Sep 2025 13:16:28 +0200 Subject: [PATCH 2/4] fixup: venv --- ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 | 3 ++- ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 | 3 ++- .../roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 index 50ca9d747..a33699ad4 100644 --- a/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 @@ -5,7 +5,7 @@ ENV USER {{ server_user }} ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }} ENV SHELL /bin/bash ENV HOME /home/{{ server_user }} -ENV PATH /usr/lib/ccache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PATH /usr/local/venv/bin:/usr/lib/ccache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe ENV NODE_TEST_DIR /home/{{ server_user }}/tmp ENV OSTYPE linux-gnu @@ -28,6 +28,7 @@ RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y \ libtool \ automake +RUN python3 -m venv /usr/local/venv RUN pip3 install tap2junit=={{ tap2junit_version }} RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} diff --git a/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 index 400c1e714..fafdf380f 100644 --- a/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 @@ -5,7 +5,7 @@ ENV USER {{ server_user }} ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }} ENV SHELL /bin/bash ENV HOME /home/{{ server_user }} -ENV PATH /usr/lib/ccache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PATH /usr/local/venv/bin:/usr/lib/ccache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe ENV NODE_TEST_DIR /home/{{ server_user }}/tmp ENV OSTYPE linux-gnu @@ -25,6 +25,7 @@ RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y ccache \ python-is-python3 \ libfontconfig1 +RUN python3 -m venv /usr/local/venv RUN pip3 install tap2junit=={{ tap2junit_version }} RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} diff --git a/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 index 9ca6c2484..d3f01e10f 100644 --- a/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 @@ -5,7 +5,7 @@ ENV USER {{ server_user }} ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }} ENV SHELL /bin/bash ENV HOME /home/{{ server_user }} -ENV PATH /usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PATH /usr/local/venv/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe ENV NODE_TEST_DIR /home/{{ server_user }}/tmp ENV OSTYPE linux-gnu @@ -30,6 +30,7 @@ RUN apt-get update && apt-get install apt-utils -y && \ libtool \ automake +RUN python3 -m venv /usr/local/venv RUN pip3 install tap2junit=={{ tap2junit_version }} RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} From 53aa86d8547638f8522a4c6702435d9582e468d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 25 Sep 2025 13:41:53 +0200 Subject: [PATCH 3/4] fixup: venv --- ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 | 1 + ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 | 1 + .../roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 | 1 + 3 files changed, 3 insertions(+) diff --git a/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 index a33699ad4..528ebf5b1 100644 --- a/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 @@ -23,6 +23,7 @@ RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y \ openjdk-21-jre-headless \ curl \ python3-pip \ + python3-venv \ python-is-python3 \ libfontconfig1 \ libtool \ diff --git a/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 index fafdf380f..cc9dd1209 100644 --- a/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 @@ -22,6 +22,7 @@ RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y ccache \ pkg-config \ curl \ python3-pip \ + python3-venv \ python-is-python3 \ libfontconfig1 diff --git a/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 index d3f01e10f..230c581fa 100644 --- a/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 @@ -25,6 +25,7 @@ RUN apt-get update && apt-get install apt-utils -y && \ pkg-config \ curl \ python3-pip \ + python3-venv \ python-is-python3 \ libfontconfig1 \ libtool \ From 76db7cf7fde5d8c097cc415ad236aaf88fdcc337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 25 Sep 2025 17:41:08 +0200 Subject: [PATCH 4/4] fixup: delete ubuntu user first and run all commands in the same step --- ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 | 7 ++++--- .../roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 | 7 ++++--- .../docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 | 7 ++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 index 528ebf5b1..2300652c5 100644 --- a/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu2404.Dockerfile.j2 @@ -32,9 +32,10 @@ RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y \ RUN python3 -m venv /usr/local/venv RUN pip3 install tap2junit=={{ tap2junit_version }} -RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} - -RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} +# Delete the default ubuntu user so we can use its UID/GID (1000) if necessary. +RUN deluser ubuntu && \ + addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} && \ + adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} VOLUME /home/{{ server_user }}/ /home/{{ server_user }}/.ccache diff --git a/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 index cc9dd1209..196800d09 100644 --- a/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu2404_armv7l.Dockerfile.j2 @@ -29,9 +29,10 @@ RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y ccache \ RUN python3 -m venv /usr/local/venv RUN pip3 install tap2junit=={{ tap2junit_version }} -RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} - -RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} +# Delete the default ubuntu user so we can use its UID/GID (1000) if necessary. +RUN deluser ubuntu && \ + addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} && \ + adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} VOLUME /home/{{ server_user }}/ /home/{{ server_user }}/.ccache diff --git a/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 index 230c581fa..736207e1b 100644 --- a/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu2404_sharedlibs.Dockerfile.j2 @@ -34,9 +34,10 @@ RUN apt-get update && apt-get install apt-utils -y && \ RUN python3 -m venv /usr/local/venv RUN pip3 install tap2junit=={{ tap2junit_version }} -RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} - -RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} +# Delete the default ubuntu user so we can use its UID/GID (1000) if necessary. +RUN deluser ubuntu && \ + addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} && \ + adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} ENV ICU69DIR=/opt/icu-69.1 \ ICU71DIR=/opt/icu-71.1 \