-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile
106 lines (82 loc) · 4.49 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
FROM ubuntu:latest
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y software-properties-common && \
add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu/ xenial main" && \
apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu/ xenial universe" && \
apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu/ xenial-updates main" && \
apt-add-repository -y "deb http://archive.ubuntu.com/ubuntu/ xenial-updates universe" && \
apt-get update && \
apt-get install -y --no-install-recommends \
git ninja-build make doxygen graphviz unzip iwyu libboost-all-dev valgrind vera++ \
lsb-release wget clang-format clang-tools-11 clang-tidy-11 lcov gpg-agent \
g++-4.8 g++-4.9 g++-5 g++-7 g++-8 g++-9 g++-10 g++ \
clang-3.5 clang-3.6 clang-3.7 clang-3.8 clang-3.9 clang-4.0 clang-5.0 clang-6.0 clang-7 clang-8 clang-9 clang-10 clang-11 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
#######################################################################################
# CMake
#######################################################################################
RUN CMAKE_VERSION=3.21.1 && \
wget https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-Linux-x86_64.sh && \
chmod a+x cmake-$CMAKE_VERSION-Linux-x86_64.sh && \
./cmake-$CMAKE_VERSION-Linux-x86_64.sh --skip-license --prefix=/usr/local && \
rm cmake-$CMAKE_VERSION-Linux-x86_64.sh
#######################################################################################
# GCC
#######################################################################################
RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
apt-get update && \
apt-get install -y g++-11 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
#######################################################################################
# Clang
#######################################################################################
RUN wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && ./llvm.sh 12 && rm llvm.sh
#######################################################################################
# CppCheck
#######################################################################################
RUN git clone --depth 1 https://github.com/danmar/cppcheck.git && \
cmake -S cppcheck -B cppcheck/build -G Ninja -DCMAKE_BUILD_TYPE=Release && \
cmake --build cppcheck/build --target install && \
rm -fr cppcheck
#######################################################################################
# PVS Studio
#######################################################################################
# see https://www.viva64.com/en/m/0039/#IDA60A8D2301
RUN wget -q -O - https://files.viva64.com/etc/pubkey.txt | apt-key add - && \
wget -O /etc/apt/sources.list.d/viva64.list https://files.viva64.com/etc/viva64.list && \
apt-get update && \
apt-get install -y --no-install-recommends pvs-studio && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
#######################################################################################
# OCLint
#######################################################################################
RUN OCLINT_RELEASE=oclint-21.05-llvm-12.0.0-x86_64-linux-ubuntu-20.04.tar.gz && \
cd ~ && \
wget https://github.com/oclint/oclint/releases/download/v21.05/${OCLINT_RELEASE} && \
tar xfz ${OCLINT_RELEASE} && \
rm ${OCLINT_RELEASE}
ENV PATH=${PATH}:/root/oclint-21.05/bin
#######################################################################################
# SonarSource
#######################################################################################
RUN apt-get update && \
apt-get install -y --no-install-recommends \
openjdk-11-jdk
ENV SONAR_SCANNER_VERSION=4.4.0.2170
RUN wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}-linux.zip && \
unzip sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip && \
rm sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip
ENV PATH=${PATH}:/sonar-scanner-${SONAR_SCANNER_VERSION}-linux/bin
RUN wget https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip && \
unzip build-wrapper-linux-x86.zip && \
rm build-wrapper-linux-x86.zip
ENV PATH=${PATH}:/build-wrapper-linux-x86
RUN apt-get update && \
apt-get install -y --no-install-recommends \
python3-pip
RUN pip3 install cmakelang==0.6.13