diff options
author | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2015-03-25 04:26:40 +0100 |
---|---|---|
committer | Nicolas "Pixel" Noble <pixel@nobis-crew.org> | 2015-03-25 06:19:41 +0100 |
commit | b8b3e01c4bd4e2bbe0bfec3be58b40c7329c5b4f (patch) | |
tree | cf1f60ea19cae70aeb61976c5c3a73249dd69ece /tools | |
parent | 5a8cfdd8af010c490b4031893b659b161daff6a9 (diff) |
Adding Dockerfile for grpc/scan-build.
This can be simply used that way:
docker run -p 8182:8181 grpc/scan-build
This will grab grpc's latest github code, compile it through clang's scan-build tool (http://clang-analyzer.llvm.org/scan-build.html) and output the result on stdout. This will also start an HTTP server on port 8182 on your machine, displaying the report nicely.
As a nice side-effect, this will also produce scan reports for openssl and protobuf.
The server can be then stopped this way:
docker ps -l # figure out the container-id
docker kill container-id
Diffstat (limited to 'tools')
-rw-r--r-- | tools/dockerfile/grpc_scan_build/Dockerfile | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tools/dockerfile/grpc_scan_build/Dockerfile b/tools/dockerfile/grpc_scan_build/Dockerfile new file mode 100644 index 0000000000..9f263849c9 --- /dev/null +++ b/tools/dockerfile/grpc_scan_build/Dockerfile @@ -0,0 +1,47 @@ +# Copyright 2015, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +FROM grpc/clang:latest + +RUN apt-get update && apt-get install -y \ + autoconf \ + libtool \ + libgflags-dev \ + libgtest-dev \ + && apt-get clean + +RUN git clone --recursive https://github.com/grpc/grpc.git + +EXPOSE 8181 + +CMD \ + (cd grpc ; git pull) && \ + (cd grpc ; git submodule update --init --recursive) && \ + llvm/tools/clang/tools/scan-build/scan-build -o /tmp/grpc --use-analyzer=/usr/local/bin/clang make -C grpc buildtests && \ + llvm/tools/clang/tools/scan-view/scan-view /tmp/grpc/`ls /tmp/grpc` --host 0.0.0.0 --no-browser --allow-all-hosts |