diff --git a/alpine/Dockerfile b/alpine/Dockerfile index acd9ecb16..21665810b 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..559a10689 --- /dev/null +++ b/alpine/packages/diagnostics/diagnostics-download @@ -0,0 +1,35 @@ +#!/bin/sh + +# Gather diagnostic data and write a .tar file to stdout + +TEMP=$(mktemp -d diagnoseXXXXXXX) +trap 'rm -rf "$TEMP"' EXIT +mkdir $TEMP/moby +cd $TEMP/moby + +# gather diagnostic data +date > "date" +uname -a > "uname -a" +ps uax > "ps -aux" +netstat -tulpn > "netstat -tulpn" +iptables -t nat -L > "iptables -t nat -L" +ifconfig -a > "ifconfig -a" +route -n > "route -n" +brctl show > "brctl show" +dmesg > dmesg +timeout -t 2 docker ps > "docker ps" +tail /var/log/docker.log > "docker.log" +mount > "mount" +df > "df" +ls -l /var &> "ls -l var" +ls -l /var/lib &> "ls -l var_lib" +ls -l /var/lib/docker &> "ls -l var_lib_docker" +/usr/bin/diagnostics > "diagnostics" +ping -w 5 8.8.8.8 &> "ping -w 5 8.8.8.8" +cp /etc/resolv.conf . +dig docker.com > "dig docker.com" +wget -O - http://www.docker.com/ &> "wget docker.com" + +# send everything to the client +cd .. +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 & }