From 1d1626e449a1f9c092c0002ee4fd69e8cd613069 Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Thu, 7 Apr 2016 14:58:12 +0100 Subject: [PATCH] add mobyconfig tool for simpler config Signed-off-by: Justin Cormack --- alpine/Dockerfile | 2 + alpine/packages/mobyconfig/mobyconfig | 54 +++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100755 alpine/packages/mobyconfig/mobyconfig diff --git a/alpine/Dockerfile b/alpine/Dockerfile index f2b8b1210..d6fd9b62f 100644 --- a/alpine/Dockerfile +++ b/alpine/Dockerfile @@ -18,6 +18,7 @@ RUN \ strace fuse COPY etc /etc/ +RUN mkdir -p /etc/docker ADD kernel/aufs-utils.tar / COPY mkinitrd.sh /bin/ @@ -57,6 +58,7 @@ COPY packages/userns/useradd /usr/sbin COPY packages/nc-vsock/nc-vsock /usr/bin COPY packages/vsudd/vsudd /sbin COPY packages/vsudd/etc /etc +iCOPY packages/mobyconfig/mobyconfig /usr/bin RUN \ rc-update add swap boot && \ diff --git a/alpine/packages/mobyconfig/mobyconfig b/alpine/packages/mobyconfig/mobyconfig new file mode 100755 index 000000000..5028f4ea7 --- /dev/null +++ b/alpine/packages/mobyconfig/mobyconfig @@ -0,0 +1,54 @@ +#!/bin/sh + +if [ $# -ne 2 ] +then + printf "usage: $0 [get|exists] key\n" + exit 0 +fi + +if [ $1 == "set" ] +then + printf "Configuration is immutable\n" 1>&2 + exit 1 +fi + +if ! cat /proc/cmdline | grep -q 'com.docker.database' +then + printf "Could not find database configuration information\n" 1>&2 + exit 1 +fi + +if [ ! -d /Database ] +then + mkdir -p /Database + mount -t 9p -o trans=virtio,dfltuid=1001,dfltgid=50,version=9p2000 db /Database + if [ $? -ne 1 ] + then + rm -rf /Database + printf "Could not mount configuration database\n" 1>&2 + exit 1 + fi +fi + +DATABASE="$(cat /proc/cmdline | sed -e 's/.*com.docker.database="//' -e 's/".*//')" +BASE="/Database/branch/master/ro/${DATABASE}" + +if [ $1 == "exists" ] +then + [ -f ${BASE}/$2 ] && exit 0 || exit 1 +fi + +if [ $1 == "get" ] +then + if [ -f ${BASE}/$2 ] + then + cat ${BASE}/$2 + exit 0 + else + printf "No such key: $2\n" 1>&2 + exit 1 + fi +fi + +printf "usage: $0 [get|exists] key\n" +exit 1