From 8c629f20a60e2f2b0c81b60a00abdf0b0a58b449 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Fri, 7 Apr 2023 23:30:24 -0700 Subject: [PATCH] docker: Workaround buildkit ignoring --cpuset-cpus. --- docker/alpine/built/Dockerfile | 4 +++- docker/build-and-push-images.sh | 5 +++++ docker/ubuntu/base/Dockerfile | 4 +++- docker/ubuntu/built/Dockerfile | 4 +++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/docker/alpine/built/Dockerfile b/docker/alpine/built/Dockerfile index 3b805db1a..b4f81e134 100644 --- a/docker/alpine/built/Dockerfile +++ b/docker/alpine/built/Dockerfile @@ -14,6 +14,7 @@ ARG rocksdb_version 7.4.3 ARG rocksdb_url ARG ctor_url https://github.com/matrix-construct/construct ARG machine_spec +ARG nprocs ENV CC ${cc} ENV CXX ${cxx} @@ -23,6 +24,7 @@ ENV rocksdb_version ${rocksdb_version} ENV rocksdb_url https://codeload.github.com/facebook/rocksdb/tar.gz/refs/tags/v${rocksdb_version} ENV ctor_url ${ctor_url} ENV machine_spec ${machine_spec} +ENV nprocs ${nprocs} ENV packages_dev="\ ${packages_dev} \ @@ -51,7 +53,7 @@ RUN true \ && cd /usr/src/construct \ && ./autogen.sh \ && (./configure --disable-iou --enable-generic --with-machine="${machine_spec}" || (cat config.log; exit 1)) \ -&& make -j `nproc` EXTRA_LDFLAGS="-Wl,--strip-all" install \ +&& make -j ${nprocs} EXTRA_LDFLAGS="-Wl,--strip-all" install \ && rm -rf /usr/src/rocksdb \ && rm -rf /usr/src/construct \ && rm -rf /usr/include/ircd \ diff --git a/docker/build-and-push-images.sh b/docker/build-and-push-images.sh index cb1e0702a..721f40cb7 100755 --- a/docker/build-and-push-images.sh +++ b/docker/build-and-push-images.sh @@ -86,6 +86,11 @@ build() if test ! -z "$runner_num"; then cpu_num=$(expr $runner_num % $(nproc)) args="$args --cpuset-cpus=${cpu_num}" + args="$args --build-arg nprocs=1" + # https://github.com/moby/buildkit/issues/1276 + else + nprocs=$(nproc) + args="$args --build-arg nprocs=${nprocs}" fi args="$args --build-arg acct=${ctor_acct}" diff --git a/docker/ubuntu/base/Dockerfile b/docker/ubuntu/base/Dockerfile index 4b4cd0dc7..b77823e8b 100644 --- a/docker/ubuntu/base/Dockerfile +++ b/docker/ubuntu/base/Dockerfile @@ -10,6 +10,7 @@ ARG rocksdb_avx 0 ARG rocksdb_avx2 0 ARG boost_version 1.74 ARG icu_version 70 +ARG nprocs 1 ENV rocksdb_version ${rocksdb_version} ENV rocksdb_url https://codeload.github.com/facebook/rocksdb/tar.gz/refs/tags/v${rocksdb_version} @@ -17,6 +18,7 @@ ENV rocksdb_avx ${rocksdb_avx} ENV rocksdb_avx2 ${rocksdb_avx2} ENV boost_version ${boost_version} ENV icu_version ${icu_version} +ENV nprocs ${nprocs} ENV packages="\ ca-certificates \ @@ -125,7 +127,7 @@ fi \ CFLAGS="-g0 -ftls-model=initial-exec" \ LDFLAGS="-Wl,--strip-all" \ cmake -H. -Bbuild ${rocksdb_cmake} \ -&& cmake --build build --target install --parallel `nproc` \ +&& cmake --build build --target install --parallel ${nprocs} \ && rm -rf /usr/lib/$(uname -m)-linux-gnu/librocksdb.a \ && rm -rf /usr/src/rocksdb \ && eval ${do_purge} ${packages_rocksdb_dev} \ diff --git a/docker/ubuntu/built/Dockerfile b/docker/ubuntu/built/Dockerfile index 34ad62d15..47e608063 100644 --- a/docker/ubuntu/built/Dockerfile +++ b/docker/ubuntu/built/Dockerfile @@ -12,11 +12,13 @@ ARG cxx ARG extra_packages_dev ARG ctor_url https://github.com/matrix-construct/construct ARG machine_spec +ARG nprocs ENV CC ${cc} ENV CXX ${cxx} ENV ctor_url ${ctor_url} ENV machine_spec ${machine_spec} +ENV nprocs ${nprocs} ENV packages_dev="\ ${packages_dev} \ @@ -40,7 +42,7 @@ RUN true \ && ln -sv /usr/src/rocksdb deps \ && ./autogen.sh \ && (./configure --enable-generic --with-machine="${machine_spec}" || (cat config.log; exit 1)) \ -&& make -j `nproc` \ +&& make -j ${nprocs} \ && make install \ && cd .. \ && rm -rf construct \