diff --git a/docker/xenial/Dockerfile b/docker/xenial/Dockerfile index 0afaa4f01ec1d0ce40a548bd8ed6a78ecd2975c0..1a8e36318af041b4e07e21fa0a54c03b05a2ca33 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 8ed25f2fccb5a1083d9ed4fc8b77fc773391d9bc..c069e6ca810c109c2ab848d1e196a90518ede9d5 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 0000000000000000000000000000000000000000..84e9c3c47285b6a9d94f79f97f4799970b46dc65 --- /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 +