diff --git a/alpine/Dockerfile b/alpine/Dockerfile index 9e2ad2c8c..4dd4dff4b 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -34,6 +34,8 @@ COPY packages/docker/docker /usr/bin/ COPY packages/docker/etc /etc/ COPY packages/docker-x/docker-x /usr/bin/ COPY packages/diagnostics/diagnostics /usr/bin/ +COPY packages/diagnostics/diagnostics-server /usr/bin/ +COPY packages/diagnostics/diagnostics-download /usr/bin/ COPY packages/diagnostics/etc /etc/ COPY packages/automount/etc /etc/ COPY packages/9pinit/etc /etc/ diff --git a/alpine/packages/diagnostics/diagnostics-download b/alpine/packages/diagnostics/diagnostics-download new file mode 100755 index 000000000..e859edd3d --- /dev/null +++ b/alpine/packages/diagnostics/diagnostics-download @@ -0,0 +1,20 @@ +#!/bin/sh + +# Gather diagnostic data and write a .tar file to stdout + +TEMP=$(mktemp -d diagnoseXXXXXXX) +trap 'rm -rf "$TEMP"' EXIT +cd $TEMP + +# gather diagnostic data +ps uax > "ps -aux" +netstat -an > "netstat -an" +iptables -L > "iptables -L" +dmesg > dmesg +timeout -t 2 docker ps > "docker ps" +/usr/bin/diagnostics > "diagnostics" +dig docker.com > "dig docker.com" +wget -O - http://www.docker.com/ &> "wget docker.com" + +# send everything to the client +tar -c . diff --git a/alpine/packages/diagnostics/diagnostics-server b/alpine/packages/diagnostics/diagnostics-server new file mode 100755 index 000000000..611b0f28c --- /dev/null +++ b/alpine/packages/diagnostics/diagnostics-server @@ -0,0 +1,7 @@ +#!/bin/sh + +# Allow clients (e.g. pinata diagnose) to download diagnostic data + +while /bin/true; do + nc -l -p 62374 -e /usr/bin/diagnostics-download 2>> /var/log/diagnostics-server.log +done diff --git a/alpine/packages/diagnostics/etc/init.d/diagnostics b/alpine/packages/diagnostics/etc/init.d/diagnostics index 2629bfeb6..a5cbf056a 100755 --- a/alpine/packages/diagnostics/etc/init.d/diagnostics +++ b/alpine/packages/diagnostics/etc/init.d/diagnostics @@ -10,4 +10,5 @@ start() ebegin "Checking system state" /usr/bin/diagnostics + /usr/bin/diagnostics-server & }