Skip to content

Commit 4b97ab0

Browse files
Improve image size
1 parent 3e6708d commit 4b97ab0

File tree

2 files changed

+85
-59
lines changed

2 files changed

+85
-59
lines changed

Dockerfile.producer

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
# ---------- Build stage ----------
2-
FROM alpine:3.22.1 as builder
2+
FROM alpine:3.22.1 AS builder
33

44
WORKDIR /root
5-
RUN apk update && \
6-
apk add --no-cache git \
7-
make \
8-
cmake \
9-
clang \
10-
clang-dev \
11-
make \
12-
automake \
13-
gcc \
14-
g++ \
15-
libc-dev \
16-
linux-headers \
17-
pkgconfig \
18-
libpcap-dev \
19-
autoconf \
20-
bash \
21-
libtool
5+
6+
RUN apk add --no-cache \
7+
git \
8+
cmake \
9+
clang \
10+
clang-dev \
11+
gcc \
12+
g++ \
13+
libc-dev \
14+
linux-headers \
15+
pkgconfig \
16+
libpcap-dev \
17+
autoconf \
18+
automake \
19+
libtool \
20+
bash \
21+
make
2222

2323
RUN git clone --branch 1.6 https://github.com/utoni/nDPId.git
2424

@@ -27,7 +27,7 @@ COPY nDPId/config.h nDPId
2727
RUN cd nDPId && mkdir build && cd build && cmake .. -DBUILD_NDPI=ON && make
2828

2929
# ---------- Runtime stage ----------
30-
FROM alpine:3.22.1 as runtime
30+
FROM alpine:3.22.1 AS runtime
3131

3232
ENV MAX_BUFFERED_LINES=1024 \
3333
MAX_THREADS=4 \
@@ -43,14 +43,15 @@ ENV MAX_BUFFERED_LINES=1024 \
4343
HOSTNAME=""
4444

4545
WORKDIR /root
46-
RUN apk update && \
47-
apk add --no-cache curl libpcap-dev bash
4846

49-
COPY --from=builder /root/nDPId/libnDPI/ /root/
50-
COPY --from=builder /root/nDPId/build/nDPIsrvd /root/nDPId/build/nDPId /root/
47+
RUN apk add --no-cache libpcap curl
48+
49+
COPY --from=builder /root/nDPId/libnDPI/libndpi.so* /root/
50+
COPY --from=builder /root/nDPId/build/nDPIsrvd /root/
51+
COPY --from=builder /root/nDPId/build/nDPId /root/
5152

5253
COPY docker-entrypoint.sh /root/
5354
RUN chmod +x /root/docker-entrypoint.sh
5455

55-
ENTRYPOINT ["/bin/bash", "/root/docker-entrypoint.sh"]
56-
CMD ["nDPId"]
56+
ENTRYPOINT ["/bin/sh", "/root/docker-entrypoint.sh"]
57+
CMD ["nDPId"]

docker-entrypoint.sh

Lines changed: 59 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/bin/bash
1+
#!/bin/sh
22

33
MY_INFO="\
44
###########################################
@@ -11,65 +11,90 @@ Starting services
1111

1212
echo "$MY_INFO"
1313

14-
# exit script if any command fails (non-zero value)
14+
# Exit on any command failure
1515
set -e
16-
params_ndpisrvd=()
17-
params_ndpid=()
16+
17+
params_ndpisrvd=""
18+
params_ndpid=""
1819

1920
###########################################
2021
### Create params for nDPIsrvd ###
2122
###########################################
2223

23-
[[ $MAX_BUFFERED_LINES -gt 0 ]] && params_ndpisrvd+=(-C $MAX_BUFFERED_LINES)
24+
if [ "$MAX_BUFFERED_LINES" -gt 0 ] 2>/dev/null; then
25+
params_ndpisrvd="$params_ndpisrvd -C $MAX_BUFFERED_LINES"
26+
fi
2427

2528
###########################################
2629
### Create params for nDPId ###
2730
###########################################
2831

29-
regex='(https?|ftp|file)://[-[:alnum:]\+&@#/%?=~_|!:,.;]*[-[:alnum:]\+&@#/%=~_|]'
32+
url_regex="^\(https\?\|ftp\|file\)://"
3033

31-
if [[ $JA3_URL =~ $regex ]]; then
32-
curl "$JA3_URL" > /root/ja3_fingerprints.csv
33-
params_ndpid+=(-J /root/ja3_fingerprints.csv)
34-
fi
34+
case "$JA3_URL" in
35+
http://* | https://* | ftp://* | file://*)
36+
curl "$JA3_URL" > /root/ja3_fingerprints.csv
37+
params_ndpid="$params_ndpid -J /root/ja3_fingerprints.csv"
38+
;;
39+
esac
3540

36-
if [[ $SSL_SHA1_URL =~ $regex ]]; then
37-
curl "$SSL_SHA1_URL" > /root/sslblacklist.csv
38-
params_ndpid+=(-S /root/sslblacklist.csv)
41+
case "$SSL_SHA1_URL" in
42+
http://* | https://* | ftp://* | file://*)
43+
curl "$SSL_SHA1_URL" > /root/sslblacklist.csv
44+
params_ndpid="$params_ndpid -S /root/sslblacklist.csv"
45+
;;
46+
esac
47+
48+
if [ -n "$INTERFACE" ]; then
49+
params_ndpid="$params_ndpid -i $INTERFACE"
3950
fi
4051

41-
[[ -n $INTERFACE ]] && params_ndpid+=(-i $INTERFACE)
52+
if [ "$FLOW_ANALYSIS" = "1" ]; then
53+
params_ndpid="$params_ndpid -A"
54+
fi
4255

43-
[[ $FLOW_ANALYSIS = 1 ]] && params_ndpid+=(-A)
56+
if [ -n "$TUNE_PARAM" ]; then
57+
OLD_IFS="$IFS"
58+
IFS=','
4459

45-
if [[ -n $TUNE_PARAM ]]; then
46-
for word in $(echo $TUNE_PARAM | tr "," "\n"); do
47-
params_ndpid+=(-o $word)
60+
for word in $TUNE_PARAM; do
61+
params_ndpid="$params_ndpid -o $word"
4862
done
63+
64+
IFS="$OLD_IFS"
4965
fi
5066

51-
[[ -n $PCAP_FILTER ]] && params_ndpid+=(-B $PCAP_FILTER)
67+
if [ -n "$PCAP_FILTER" ]; then
68+
params_ndpid="$params_ndpid -B $PCAP_FILTER"
69+
fi
5270

53-
[[ -n $NDPI_CUSTOM_PROTOCOLS ]] && params_ndpid+=(-P $NDPI_CUSTOM_PROTOCOLS)
71+
if [ -n "$NDPI_CUSTOM_PROTOCOLS" ]; then
72+
params_ndpid="$params_ndpid -P $NDPI_CUSTOM_PROTOCOLS"
73+
fi
5474

55-
[[ -n $NDPI_CUSTOM_CATEGORIES ]] && params_ndpid+=(-C $NDPI_CUSTOM_CATEGORIES)
75+
if [ -n "$NDPI_CUSTOM_CATEGORIES" ]; then
76+
params_ndpid="$params_ndpid -C $NDPI_CUSTOM_CATEGORIES"
77+
fi
5678

57-
[[ -n $HOSTNAME ]] && params_ndpid+=(-a $HOSTNAME)
79+
if [ -n "$HOSTNAME" ]; then
80+
params_ndpid="$params_ndpid -a $HOSTNAME"
81+
fi
5882

5983
###########################################
6084
### Start nDPIsrvd ###
6185
###########################################
6286

6387
echo "Start nDPIsrvd..."
6488

65-
/root/nDPIsrvd -p /tmp/nDPIsrvd-daemon.pid \
66-
-c /tmp/nDPIsrvd-daemon-collector.sock \
67-
-s /tmp/nDPIsrvd-daemon-distributor.sock \
68-
-S 0.0.0.0:$PORT \
69-
-u root \
70-
-d \
71-
-L /tmp/nDPIsrvd.log \
72-
"${params_ndpisrvd[@]}"
89+
# Use eval to expand parameter string correctly
90+
eval /root/nDPIsrvd -p /tmp/nDPIsrvd-daemon.pid \
91+
-c /tmp/nDPIsrvd-daemon-collector.sock \
92+
-s /tmp/nDPIsrvd-daemon-distributor.sock \
93+
-S 0.0.0.0:$PORT \
94+
-u root \
95+
-d \
96+
-L /tmp/nDPIsrvd.log \
97+
$params_ndpisrvd
7398

7499
###########################################
75100
### Start nDPId ###
@@ -78,7 +103,7 @@ echo "Start nDPIsrvd..."
78103
echo "Start nDPId..."
79104

80105
exec /root/nDPId -p /tmp/nDPId-daemon.pid \
81-
-c /tmp/nDPIsrvd-daemon-collector.sock \
82-
-u root \
83-
-L /tmp/nDPId.log \
84-
"${params_ndpid[@]}"
106+
-c /tmp/nDPIsrvd-daemon-collector.sock \
107+
-u root \
108+
-L /tmp/nDPId.log \
109+
$params_ndpid

0 commit comments

Comments
 (0)