diff --git a/docker/code-analysis/Dockerfile b/docker/code-analysis/Dockerfile
index d54007238c25cc0379d8a2344f712cd72ad48d42..6fcea973ab2b44dd97bd66cc6a48bf322e49846d 100644
--- a/docker/code-analysis/Dockerfile
+++ b/docker/code-analysis/Dockerfile
@@ -38,7 +38,6 @@ RUN \
       python3 \
       python3-setuptools \
       default-jre \
-      cppcheck \
       flawfinder
 # Install dependent libraries
 RUN \
@@ -56,6 +55,7 @@ RUN \
       libssl-dev \
       libnl-route-3-dev \
       libnfnetlink-dev \
+      libpcre3-dev \
       libtool \
       libtrace-dev \
       zlib1g-dev  \
@@ -72,6 +72,20 @@ RUN rm -rf /var/lib/apt/lists/*
 RUN mkdir /opt/dev
 RUN mkdir /etc/config
 
+# install cppcheck
+ARG CPPCHECK_VERSION=2.7
+RUN \
+    cd /opt/dev && \
+    git clone -b ${CPPCHECK_VERSION} --depth=1 https://github.com/danmar/cppcheck.git && \
+    cd cppcheck && \
+    mkdir build && \
+    cd build && \
+    cmake -j$(nproc) -DHAVE_RULES=ON -DUSE_MATCHCOMPILER=ON .. && \
+    cmake --build . && \
+    cmake --install . && \
+    cd ../.. && \
+    rm -rf cppcheck
+
 # install node
 ARG NODE_VERSION=14.16.1
 ENV PATH="/root/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}"