From 59fba96d171b042edfceac5d56fa97946e66a0a4 Mon Sep 17 00:00:00 2001
From: Mate Farkas <mate.farkas@sch.hu>
Date: Thu, 3 Aug 2017 17:33:32 +0100
Subject: [PATCH] Vagrant-compatible AmazonLinux image has been added.

---
 docker/amazonlinux/Dockerfile                 | 25 +++++++++++++++++++
 docker/amazonlinux/Makefile                   |  8 ++++++
 docker/amazonlinux/README.md                  | 15 +++++++++++
 docker/amazonlinux/etc/environment            |  5 ++++
 docker/amazonlinux/etc/mini-init/99-ssh       |  6 +++++
 docker/amazonlinux/etc/sudoers.d/vagrant      |  2 ++
 .../home/vagrant/.ssh/authorized_keys         |  2 ++
 docker/amazonlinux/sbin/mini-init             | 13 ++++++++++
 8 files changed, 76 insertions(+)
 create mode 100644 docker/amazonlinux/Dockerfile
 create mode 100644 docker/amazonlinux/Makefile
 create mode 100644 docker/amazonlinux/README.md
 create mode 100644 docker/amazonlinux/etc/environment
 create mode 100644 docker/amazonlinux/etc/mini-init/99-ssh
 create mode 100644 docker/amazonlinux/etc/sudoers.d/vagrant
 create mode 100644 docker/amazonlinux/home/vagrant/.ssh/authorized_keys
 create mode 100644 docker/amazonlinux/sbin/mini-init

diff --git a/docker/amazonlinux/Dockerfile b/docker/amazonlinux/Dockerfile
new file mode 100644
index 0000000..6c0abb0
--- /dev/null
+++ b/docker/amazonlinux/Dockerfile
@@ -0,0 +1,25 @@
+FROM amazonlinux:2017.03
+MAINTAINER Mate Farkas <mate.farkas@sch.hu>
+
+RUN yum install --assumeyes \
+  openssh-server \
+  sudo \
+  vim
+
+ADD etc/environment /etc/environment
+
+RUN useradd -m -s /bin/bash vagrant
+ADD home/vagrant/.ssh/authorized_keys /home/vagrant/.ssh/authorized_keys
+RUN chmod 0700 /home/vagrant/.ssh/
+RUN chmod 0600 /home/vagrant/.ssh/authorized_keys
+RUN chown -R vagrant. /home/vagrant/
+
+ADD etc/sudoers.d/vagrant /etc/sudoers.d/vagrant
+
+ADD sbin/mini-init /sbin/mini-init
+RUN chmod u+x /sbin/mini-init
+ADD etc/mini-init /etc/mini-init
+
+EXPOSE 22
+CMD /sbin/mini-init
+
diff --git a/docker/amazonlinux/Makefile b/docker/amazonlinux/Makefile
new file mode 100644
index 0000000..8d70586
--- /dev/null
+++ b/docker/amazonlinux/Makefile
@@ -0,0 +1,8 @@
+TAG='matefarkas/amazonlinux:base'
+
+all:
+	docker build --tag ${TAG} ${PWD}
+
+test:
+	docker run --interactive --tty --rm ${TAG} bash || true
+
diff --git a/docker/amazonlinux/README.md b/docker/amazonlinux/README.md
new file mode 100644
index 0000000..27df40f
--- /dev/null
+++ b/docker/amazonlinux/README.md
@@ -0,0 +1,15 @@
+# matefarkas/amazonlinux:base
+
+Finally there's an official AmazonLinux image available.
+
+Let's make it work with Vagrant.
+
+## AuFS problems
+
+The original image works, but fails to install essential packages.
+Setting the devicemapper driver in */etc/docker/daemon.json* solves the problem.
+
+    {
+      "storage-driver": "devicemapper"
+    }
+
diff --git a/docker/amazonlinux/etc/environment b/docker/amazonlinux/etc/environment
new file mode 100644
index 0000000..93fcca3
--- /dev/null
+++ b/docker/amazonlinux/etc/environment
@@ -0,0 +1,5 @@
+LC_ALL="C"
+LC_CTYPE="C"
+LC_MESSAGES="C"
+PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+
diff --git a/docker/amazonlinux/etc/mini-init/99-ssh b/docker/amazonlinux/etc/mini-init/99-ssh
new file mode 100644
index 0000000..82d2e2b
--- /dev/null
+++ b/docker/amazonlinux/etc/mini-init/99-ssh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+mkdir -p /var/run/sshd
+/usr/bin/ssh-keygen -A
+/usr/sbin/sshd -D -f /etc/ssh/sshd_config
+
diff --git a/docker/amazonlinux/etc/sudoers.d/vagrant b/docker/amazonlinux/etc/sudoers.d/vagrant
new file mode 100644
index 0000000..deca374
--- /dev/null
+++ b/docker/amazonlinux/etc/sudoers.d/vagrant
@@ -0,0 +1,2 @@
+vagrant ALL=(ALL) NOPASSWD: ALL
+
diff --git a/docker/amazonlinux/home/vagrant/.ssh/authorized_keys b/docker/amazonlinux/home/vagrant/.ssh/authorized_keys
new file mode 100644
index 0000000..47ac937
--- /dev/null
+++ b/docker/amazonlinux/home/vagrant/.ssh/authorized_keys
@@ -0,0 +1,2 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
+
diff --git a/docker/amazonlinux/sbin/mini-init b/docker/amazonlinux/sbin/mini-init
new file mode 100644
index 0000000..84e9c3c
--- /dev/null
+++ b/docker/amazonlinux/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