Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
This commit is contained in:
Jess Frazelle 2017-11-06 14:17:00 -05:00
parent 063e601250
commit 985853297c
No known key found for this signature in database
GPG Key ID: 18F3685C0022BFF3
4 changed files with 98 additions and 0 deletions

12
opensnitch/Dockerfile Normal file
View File

@ -0,0 +1,12 @@
# Usage:
# docker run -d \
# -v /etc/localtime:/etc/localtime:ro \
# -v /tmp/.X11-unix:/tmp/.X11-unix \
# -e "DISPLAY=unix${DISPLAY}" \
# --net host \
# --name opensnitch \
# r.j3ss.co/opensnitch
#
FROM r.j3ss.co/opensnitchd:latest
ENTRYPOINT ["/usr/bin/opensnitch-qt"]

70
opensnitchd/Dockerfile Normal file
View File

@ -0,0 +1,70 @@
# Usage:
# docker run -d \
# --name=opensnitchd \
# --net host \
# r.j3ss.co/opensnitchd
#
FROM alpine:latest
RUN apk add --no-cache \
python3
ENV OPENSNITCH_VERSION master
ENV PYINSTALLER_TAG v3.3
COPY ldd /bin/ldd
COPY hook-opensnitch.py /tmp/hooks/hook-opensnitch.py
ENV PATH /bin:$PATH
RUN buildDeps=' \
build-base \
git \
libc-dev \
libcap-dev \
libnetfilter_queue-dev \
libnfnetlink-dev \
musl-dev \
python3-dev \
py3-gobject3 \
py3-inotify \
py3-qt5 \
zlib-dev \
' \
set -x \
&& apk --no-cache add $buildDeps \
--repository https://dl-3.alpinelinux.org/alpine/edge/testing \
&& git clone --depth 1 --branch $PYINSTALLER_TAG https://github.com/pyinstaller/pyinstaller.git /tmp/pyinstaller \
&& ( \
cd /tmp/pyinstaller/bootloader \
&& python3 ./waf configure --no-lsb all \
&& pip3 install .. \
&& rm -Rf /tmp/pyinstaller \
) \
&& git clone --depth 1 --branch ${OPENSNITCH_VERSION} https://github.com/evilsocket/opensnitch.git /usr/src/opensnitch \
&& ( \
cd /usr/src/opensnitch \
&& python3 setup.py install \
&& pyinstaller \
--exclude-module pycrypto \
--exclude-module PyInstaller \
--noconfirm \
--onefile \
--clean \
--hidden-import=pkg_resources \
--additional-hooks-dir=/tmp/hooks/ \
$(which opensnitchd) \
&& mv dist/opensnitchd $(which opensnitchd) \
&& pyinstaller \
--exclude-module pycrypto \
--exclude-module PyInstaller \
--noconfirm \
--onefile \
--clean \
$(which opensnitch-qt) \
&& mv dist/opensnitch-qt $(which opensnitch-qt) \
&& rm -rf /usr/src/opensnitch \
) \
&& apk del $buildDeps \
&& echo "Build complete."
CMD ["/usr/bin/opensnitchd"]

View File

@ -0,0 +1,3 @@
from PyInstaller.utils.hooks import copy_metadata
datas = copy_metadata('opensnitch==0.0.2')

13
opensnitchd/ldd Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
# From http://wiki.musl-libc.org/wiki/FAQ#Q:_where_is_ldd_.3F
#
# Musl's dynlinker comes with ldd functionality built in. just create a
# symlink from ld-musl-$ARCH.so to /bin/ldd. If the dynlinker was started
# as "ldd", it will detect that and print the appropriate DSO information.
#
# Instead, this string replaced "ldd" with the package so that pyinstaller
# can find the actual lib.
exec /usr/bin/ldd "$@" | \
sed -r 's/([^[:space:]]+) => ldd/\1 => \/lib\/\1/g' | \
sed -r 's/ldd \(.*\)//g'