mobileinsight-apptainer/Dockerfile

98 lines
2.6 KiB
Docker
Raw Normal View History

2024-04-21 01:22:06 +00:00
FROM ubuntu:22.04
ARG MAX_THREADS=1
ARG WS_VER=3.4.0
ARG MI_BRANCH=ubuntu22-py310
ARG WIRESHARK_URL=http://www.mobileinsight.net/wireshark-${WS_VER}-rbc-dissector.tar.xz
ADD 00-cpp_compat.patch /build/00-cpp_compat.patch
# Run apt update
RUN set -ex; \
export DEBIAN_FRONTEND=noninteractive; \
apt-get update; \
apt-get upgrade -y; \
apt-get install -y \
git \
python3 \
python3-pip \
python3-wxgtk4.0 \
python3-matplotlib \
cmake \
pkg-config \
wget \
libglib2.0-dev \
bison \
flex \
libpcap-dev \
libgcrypt-dev \
qtbase5-dev \
qtchooser \
qt5-qmake \
qtbase5-dev-tools \
qttools5-dev \
qtmultimedia5-dev \
libqt5svg5-dev \
libc-ares-dev \
libsdl2-mixer-2.0-0 \
libsdl2-image-2.0-0 \
libsdl2-2.0-0;
# Download resources
RUN set -ex; \
mkdir -p /build; \
cd /build; \
wget "$WIRESHARK_URL" -nv -O "wireshark-$WS_VER.tar.xz"; \
tar -xf "wireshark-$WS_VER.tar.xz"; \
git clone "https://github.com/mobile-insight/mobileinsight-core.git"; \
git -C mobileinsight-core checkout "$MI_BRANCH";
# Compile and install wireshark
RUN set -ex; \
cd "/build/wireshark-$WS_VER"; \
patch epan/epan.h < /build/00-cpp_compat.patch; \
cmake -DBUILD_wireshark=OFF .; \
make -j "$MAX_THREADS"; \
make install; \
ldconfig;
# Compile and install Wireshark dissector
Run set -ex; \
cd /build/mobileinsight-core/ws_dissector; \
g++ ws_dissector.cpp packet-aww.cpp -o ws_dissector \
$(pkg-config --libs --cflags glib-2.0) \
-I"/build/wireshark-$WS_VER" \
-L"/usr/local/lib" \
-lwireshark \
-lwsutil \
-lwiretap; \
strip ws_dissector; \
install -Dm 755 ws_dissector /usr/local/bin/ws_dissector;
# Compile and install MobileInsight
Run set -ex; \
cd /build/mobileinsight-core; \
pip3 install pyserial; \
python3 setup.py install;
# Install MobileInsight GUI
Run set -ex; \
cd /build/mobileinsight-core; \
mkdir -p /usr/local/share/mobileinsight; \
cp -r gui/* /usr/local/share/mobileinsight;\
ln -s /usr/local/share/mobileinsight/mi-gui /usr/local/bin/mi-gui;
# Install examples
Run set -ex; \
cd /build/mobileinsight-core; \
cp -r examples /opt/mobileinsight-examples;
# Link python3 to python
Run set -ex; \
cd /usr/bin; \
ln -s python3 python;
# Cleanup
Run set -ex; \
apt-get autoclean -y; \
rm -rf /build;