docker: Workaround buildkit ignoring --cpuset-cpus.

This commit is contained in:
Jason Volk 2023-04-07 23:30:24 -07:00
parent b2d3ae4d0d
commit 8c629f20a6
4 changed files with 14 additions and 3 deletions

View File

@ -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 \

View File

@ -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}"

View File

@ -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} \

View File

@ -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 \