From d5b9f7ec1d01624971d5bc232127c888086c7ddb Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Mon, 21 Dec 2015 10:57:30 +0000 Subject: [PATCH] new initrd with diagnostics Signed-off-by: Justin Cormack --- alpine/Dockerfile | 3 +++ alpine/packages/diagnostics/diagnostics | 19 +++++++++++++++++++ .../diagnostics/etc/init.d/diagnostics | 13 +++++++++++++ 3 files changed, 35 insertions(+) create mode 100755 alpine/packages/diagnostics/diagnostics create mode 100755 alpine/packages/diagnostics/etc/init.d/diagnostics diff --git a/alpine/Dockerfile b/alpine/Dockerfile index 62fbec82f..c8a8d08cb 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -24,6 +24,8 @@ COPY packages/mdnstool/mdnstool /sbin/ COPY packages/mdnstool/etc /etc/ COPY packages/docker/docker /usr/bin/ COPY packages/docker/etc /etc/ +COPY packages/diagnostics/diagnostics /usr/bin/ +COPY packages/diagnostics/etc /etc/ RUN \ setup-timezone -z UTC && \ @@ -54,6 +56,7 @@ RUN \ rc-update add 9pudc default && \ rc-update add mdnstool default && \ rc-update add automount boot && \ + rc-update add diagnostics default && \ ln -s /bin/busybox /init CMD ["/bin/sh"] diff --git a/alpine/packages/diagnostics/diagnostics b/alpine/packages/diagnostics/diagnostics new file mode 100755 index 000000000..e0e1756f1 --- /dev/null +++ b/alpine/packages/diagnostics/diagnostics @@ -0,0 +1,19 @@ +#!/bin/sh + +printf '\n' +DEV=$(ls /dev | grep '[sxv]da$') +[ $? -eq 0 ] && printf "✓ Drive found: $DEV\n" || printf "✗ No drive found\n" +DEV=$(mount | grep '/dev/[sxv]da. on /var type') +[ $? -eq 0 ] && printf "✓ Drive mounted: $DEV\n" || printf "✗ No drive mounted\n" +INET=$(ifconfig eth0 2> /dev/null | grep 'inet addr') +[ $? -eq 0 ] && printf "✓ Network connected: $INET\n" || printf "✗ No network connection\n" +UDC=$(ps -eo args | grep '^/sbin/9pudc') +[ $? -eq 0 ] && printf "✓ Process 9pudc running: $UDC\n" || printf "✗ No 9pudc process\n" +MDNS=$(ps -eo args | grep '^/sbin/mdnstool') +[ $? -eq 0 ] && printf "✓ Process mdnstool running: $MDNS\n" || printf "✗ No mdnstool process\n" +DOCKER=$(ps -eo args | grep '^/usr/bin/docker') +[ $? -eq 0 ] && printf "✓ Process docker running: $DOCKER\n" || printf "✗ No docker process\n" +DOCKERPS=$(docker ps 2>&1) +[ $? -eq 0 ] && printf "✓ Docker daemon working\n" || printf "✗ Docker ps failed: $DOCKERPS\n" + +exit 0 diff --git a/alpine/packages/diagnostics/etc/init.d/diagnostics b/alpine/packages/diagnostics/etc/init.d/diagnostics new file mode 100755 index 000000000..863c979bc --- /dev/null +++ b/alpine/packages/diagnostics/etc/init.d/diagnostics @@ -0,0 +1,13 @@ +#!/sbin/openrc-run + +depend() +{ + after docker +} + +start() +{ + ebegin "Checking system state" + + /usr/bin/diagnostics +}