From 143746bc9d2d33e10062628e4dca0ba21a436bf9 Mon Sep 17 00:00:00 2001
From: Mate Farkas <mate.farkas@sch.hu>
Date: Tue, 1 Nov 2016 18:30:03 +0000
Subject: [PATCH] Mini-init has been added.

---
 docker/xenial/Dockerfile                         |  7 ++++---
 docker/xenial/README.md                          | 16 ++++++++++++++++
 .../{root/bin/start_ssh => etc/mini-init/ssh}    |  0
 docker/xenial/sbin/mini-init                     | 13 +++++++++++++
 4 files changed, 33 insertions(+), 3 deletions(-)
 rename docker/xenial/{root/bin/start_ssh => etc/mini-init/ssh} (100%)
 create mode 100644 docker/xenial/sbin/mini-init

diff --git a/docker/xenial/Dockerfile b/docker/xenial/Dockerfile
index 0afaa4f..1a8e363 100644
--- a/docker/xenial/Dockerfile
+++ b/docker/xenial/Dockerfile
@@ -15,9 +15,10 @@ RUN chown -R vagrant. /home/vagrant/
 
 ADD etc/sudoers.d/vagrant /etc/sudoers.d/vagrant
 
-ADD root/bin/start_ssh /root/bin/start_ssh
-RUN chmod 0700 /root/bin/start_ssh
+ADD sbin/mini-init /sbin/mini-init
+RUN chmod u+x /sbin/mini-init
+ADD etc/mini-init /etc/mini-init
 
 EXPOSE 22
-CMD /root/bin/start_ssh
+CMD /sbin/mini-init
 
diff --git a/docker/xenial/README.md b/docker/xenial/README.md
index 8ed25f2..c069e6c 100644
--- a/docker/xenial/README.md
+++ b/docker/xenial/README.md
@@ -2,3 +2,19 @@
 
 Base image for Vagrant using Ubuntu 16.04 LTS (Xenial Xerus).
 
+## mini-init
+
+The container by default starts with the **/sbin/mini-init** process, which executes binaries located under **/etc/mini-init**.
+
+The binaries are executed in alphabetical order and the boot process is logged in **/var/log/mini-init.log**.
+
+The *last* binary shouldn't exit. Make sure that an **ssh** daemon is running to be able to use the container with **Vagrant**.
+
+Example:
+
+    /etc/mini-init/
+      10-disks
+      20-networks
+      50-services
+      99-ssh
+
diff --git a/docker/xenial/root/bin/start_ssh b/docker/xenial/etc/mini-init/ssh
similarity index 100%
rename from docker/xenial/root/bin/start_ssh
rename to docker/xenial/etc/mini-init/ssh
diff --git a/docker/xenial/sbin/mini-init b/docker/xenial/sbin/mini-init
new file mode 100644
index 0000000..84e9c3c
--- /dev/null
+++ b/docker/xenial/sbin/mini-init
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+CONFDIR="/etc/mini-init"
+LOGFILE="/var/log/mini-init.log"
+
+for file in `ls $CONFDIR`
+do
+  script="$CONFDIR/$file"
+  echo "Running startup script: $script" >> $LOGFILE
+  bash -x $script &>> $LOGFILE
+  echo "Startup script [$script] finished with exit code: $?" >> $LOGFILE
+done
+
-- 
GitLab