|
1 | | -FROM alpine:3.14 |
| 1 | +FROM alpine:3.14 as checkout |
2 | 2 | LABEL maintainer= "Charlie Lewis <[email protected]>" |
3 | 3 |
|
4 | | -ENV BUILDDEPS="autoconf automake bison build-base flex gcc git libtool libpcap-dev libpcap linux-headers musl-dev python3-dev yaml-dev" |
5 | | -ENV PYTHONPATH=/tmp/network_tools_lib |
6 | | -WORKDIR /tmp |
7 | | - |
8 | | -# TODO: libwdcap currently requires openssl 1.0.2 |
9 | | -RUN apk add --update $BUILDDEPS \ |
10 | | - bash \ |
11 | | - coreutils \ |
12 | | - python3 \ |
13 | | - py3-pip \ |
14 | | - && rm -rf /var/cache/apk/* \ |
15 | | - && mkdir /src \ |
16 | | - && cd /src \ |
17 | | - && git clone https://github.com/wanduow/wandio.git -b 4.2.3-1 \ |
| 4 | +RUN apk add --update git |
| 5 | +WORKDIR /src |
| 6 | +RUN git clone https://github.com/wanduow/wandio.git -b 4.2.3-1 \ |
18 | 7 | && git clone https://github.com/LibtraceTeam/libtrace.git -b 4.0.16-1 \ |
19 | 8 | && git clone https://github.com/openssl/openssl -b OpenSSL_1_0_2s \ |
20 | | - && git clone https://github.com/wanduow/libwdcap.git \ |
21 | | - && cd /src/wandio \ |
22 | | - && ./bootstrap.sh \ |
23 | | - && ./configure \ |
24 | | - && make && make install \ |
25 | | - && cd /src/libtrace \ |
26 | | - && ./bootstrap.sh \ |
27 | | - && ./configure \ |
28 | | - && make && make install \ |
29 | | - && cd /src/openssl \ |
30 | | - && ./config --prefix=/usr/local --openssldir=/usr/local/openssl \ |
31 | | - && make && make install \ |
32 | | - && cd /src/libwdcap \ |
33 | | - && ./bootstrap.sh \ |
34 | | - && ./configure --disable-shared \ |
35 | | - && make && make install \ |
36 | | - && cd examples \ |
37 | | - && g++ -fpermissive -o tracecapd tracecapd.c -L/usr/local/lib -Wl,-Bstatic -ltrace -lwdcap -Wl,-Bdynamic -lpcap -lssl -lcrypto -lwandio -lyaml \ |
38 | | - && cp tracecapd /usr/local/bin \ |
39 | | - && rm -rf /src \ |
40 | | - && apk del $BUILDDEPS \ |
41 | | - && apk add \ |
42 | | - libstdc++ \ |
43 | | - libgcc \ |
44 | | - libpcap \ |
45 | | - yaml |
| 9 | + && git clone https://github.com/wanduow/libwdcap.git |
| 10 | + |
| 11 | +FROM alpine:3.14 |
| 12 | +COPY --from=checkout /src /src |
| 13 | +WORKDIR /src |
46 | 14 |
|
| 15 | +# TODO: libwdcap currently requires openssl 1.0.2 |
| 16 | +RUN apk add --update autoconf automake bison build-base flex gcc libtool libpcap-dev libpcap linux-headers musl-dev yaml-dev |
| 17 | + |
| 18 | +WORKDIR /src/openssl |
| 19 | +RUN ./config --prefix=/usr/local --openssldir=/usr/local/openssl && MAKEFLAGS=--quiet make -j "$(nproc)" && make install_sw |
| 20 | +WORKDIR /src/wandio |
| 21 | +RUN ./bootstrap.sh && ./configure && make && make install |
| 22 | +WORKDIR /src/libtrace |
| 23 | +RUN ./bootstrap.sh && ./configure && make && make install |
| 24 | +WORKDIR /src/libwdcap |
| 25 | +RUN ./bootstrap.sh && ./configure --disable-shared && make && make install |
| 26 | +WORKDIR /src/libwdcap/examples |
| 27 | +RUN g++ -fpermissive -o tracecapd tracecapd.c -L/usr/local/lib -Wl,-Bstatic -ltrace -lwdcap -Wl,-Bdynamic -lpcap -lssl -lcrypto -lwandio -lyaml && cp tracecapd /usr/local/bin |
| 28 | + |
| 29 | +WORKDIR /tmp |
47 | 30 | VOLUME /tmp |
| 31 | + |
48 | 32 | COPY network_tap/ncapture/ /tmp |
49 | 33 | COPY network_tools_lib /tmp/network_tools_lib |
50 | 34 |
|
| 35 | +RUN apk add --update bash coreutils python3 py3-pip |
51 | 36 | RUN pip3 install --no-cache-dir -r requirements.txt |
| 37 | +RUN ldd /usr/local/bin/tracecapd |
52 | 38 |
|
| 39 | +ENV PYTHONPATH=/tmp/network_tools_lib |
53 | 40 | CMD ["/tmp/run.sh"] |
0 commit comments