[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mesos-commits
Subject:    (mesos) branch master updated: [mesos-tidy] Fix broken Dockerfile due to llvm repo move.
From:       bmahler () apache ! org
Date:       2024-03-14 20:27:47
Message-ID: 171044806732.3758482.1715782230918996784 () gitbox2-he-fi ! apache ! org
[Download RAW message or body]

This is an automated email from the ASF dual-hosted git repository.

bmahler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git


The following commit(s) were added to refs/heads/master by this push:
     new e15da0210 [mesos-tidy] Fix broken Dockerfile due to llvm repo move.
e15da0210 is described below

commit e15da0210d8176851136ca3ac99be7c938ee7059
Author: Benjamin Mahler <bmahler@apache.org>
AuthorDate: Wed Mar 13 17:16:19 2024 -0400

    [mesos-tidy] Fix broken Dockerfile due to llvm repo move.
    
    This appears to fix the mesos-tidy docker image build, which now works
    per the readme instructions:
    
    ```
    $ docker build -t mesos-tidy .
    ```
    
    Running the image was hitting gcc internal errors due to OOMs, which I
    fixed via the updates shown in the readme.
---
 support/mesos-tidy/Dockerfile |  8 ++++----
 support/mesos-tidy/README.md  | 17 +++++++++++++++--
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/support/mesos-tidy/Dockerfile b/support/mesos-tidy/Dockerfile
index 90836cfce..db66a8575 100644
--- a/support/mesos-tidy/Dockerfile
+++ b/support/mesos-tidy/Dockerfile
@@ -39,11 +39,11 @@ RUN curl -sSL \
https://cmake.org/files/v3.16/cmake-3.16.0-Linux-x86_64.sh \  sh \
/tmp/install-cmake.sh --skip-license --prefix=/usr/local  
 RUN \
-  git clone --depth 1 -b release_90 http://llvm.org/git/llvm /tmp/llvm && \
-  git clone --depth 1 -b mesos_90 http://github.com/mesos/clang.git \
                /tmp/llvm/tools/clang && \
-  git clone --depth 1 -b mesos_90 http://github.com/mesos/clang-tools-extra.git \
/tmp/llvm/tools/clang/tools/extra && \ +  git clone --depth 1 -b release/9.x \
http://github.com/llvm/llvm-project.git /tmp/llvm-project && \ +  git clone --depth 1 \
-b mesos_90 http://github.com/mesos/clang.git /tmp/llvm-project/llvm/tools/clang && \ \
+  git clone --depth 1 -b mesos_90 http://github.com/mesos/clang-tools-extra.git \
/tmp/llvm-project/llvm/tools/clang/tools/extra && \  \
-  cmake /tmp/llvm -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt && \
+  cmake /tmp/llvm-project/llvm -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt && \  cmake --build tools/clang/lib/Headers --target \
install -- -j $(nproc) && \  cmake --build tools/clang/tools/extra/clang-tidy \
--target install -- -j $(nproc) && \  \
diff --git a/support/mesos-tidy/README.md b/support/mesos-tidy/README.md
index bfa42733a..043d22044 100644
--- a/support/mesos-tidy/README.md
+++ b/support/mesos-tidy/README.md
@@ -14,12 +14,17 @@ Building the image involves compiling a Mesos-flavored version of
 `clang-tidy`, installing Mesos dependencies, and installation of tools
 to drive check invocations.
 
-The image can be built with
-
+The image can be built with:
 ```bash
 $ docker build -t mesos-tidy .
 ```
 
+On an M1 Mac, you may need to pass `--platform` to avoid an error with
+`qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or \
directory`: +```bash
+$ docker build -t mesos-tidy --platform linux/amd64 .
+```
+
 A pre-built image is available via Docker Hub as `mesos/mesos-tidy`.
 
 ## Running checks
@@ -28,6 +33,7 @@ To run checks over a Mesos checkout invoke
 
 ```bash
 $ docker run \
+      --platform linux/amd64 \
       --rm \
       -v <MESOS_CHECKOUT>:/SRC \
       [-e CHECKS=<CHECKS>] \
@@ -35,6 +41,13 @@ $ docker run \
       mesos-tidy
 ```
 
+If running on macOS, it will run out of memory by default and you need
+to constrain the JOB count, for example:
+
+```bash
+docker run --rm -v <MESOS_CHECKOUT>:/SRC --platform linux/amd64 --env JOBS=4 \
--memory 32GB mesos-tidy +```
+
 Here `MESOS_CHECKOUT` points to a git checkout of the Mesos source tree.
 
 Additional configure parameters can be passed to the `cmake` invocation of Mesos


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic