summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Dockerfile62
-rw-r--r--hack.patch26
-rwxr-xr-xstart.sh35
-rwxr-xr-xstop.sh8
4 files changed, 131 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..ee34e06
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,62 @@
+FROM debian:jessie-backports
+
+# Add services helper utilities to start and stop LAVA
+COPY stop.sh .
+COPY start.sh .
+
+# Install debian packages used by the container
+# Configure apache to run the lava server
+# Log the hostname used during install for the slave name
+RUN echo 'lava-server lava-server/instance-name string lava-docker-instance' | debconf-set-selections \
+ && echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections \
+ && echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections \
+ && apt-get clean && apt-get update \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y -t jessie-backports \
+ locales \
+ postgresql \
+ screen \
+ sudo \
+ wget \
+ vim \
+ && service postgresql start \
+ && wget http://images.validation.linaro.org/production-repo/production-repo.key.asc \
+ && apt-key add production-repo.key.asc \
+ && echo 'deb http://images.validation.linaro.org/production-repo/ sid main' > /etc/apt/sources.list.d/lava.list \
+ && apt-get clean && apt-get update \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y -t jessie-backports \
+ lava \
+ qemu-system \
+ qemu-system-arm \
+ qemu-system-i386 \
+ qemu-kvm \
+ && a2enmod proxy \
+ && a2enmod proxy_http \
+ && a2dissite 000-default \
+ && a2ensite lava-server \
+ && /stop.sh \
+ && rm -rf /var/lib/apt/lists/*
+
+# Add patches
+COPY hack.patch /root/
+
+# Create a admin user (Insecure note, this creates a default user, username: admin/admin)
+RUN /start.sh \
+ && echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@localhost.com', 'admin')" | lava-server manage shell \
+ && /stop.sh
+
+# Install latest
+RUN /start.sh \
+ && git clone -b master https://git.linaro.org/lava/lava-dispatcher.git /root/lava-dispatcher \
+ && cd /root/lava-dispatcher \
+ && git checkout 2017.2 \
+ && git clone -b master https://git.linaro.org/lava/lava-server.git /root/lava-server \
+ && cd /root/lava-server \
+ && git checkout 2017.2 \
+ && git am /root/hack.patch \
+ && echo "cd \${DIR} && dpkg -i *.deb" >> /root/lava-server/share/debian-dev-build.sh \
+ && cd /root/lava-dispatcher && /root/lava-server/share/debian-dev-build.sh -p lava-dispatcher \
+ && cd /root/lava-server && /root/lava-server/share/debian-dev-build.sh -p lava-server \
+ && /stop.sh
+
+EXPOSE 22 80 5555 5556
+CMD /start.sh && bash
diff --git a/hack.patch b/hack.patch
new file mode 100644
index 0000000..4839f9e
--- /dev/null
+++ b/hack.patch
@@ -0,0 +1,26 @@
+From ae6dce30647ef602c750a3159ceac7bb801b001d Mon Sep 17 00:00:00 2001
+From: Tyler Baker <tyler.baker@linaro.org>
+Date: Fri, 31 Mar 2017 16:50:52 -0700
+Subject: [PATCH] HACK: switch to using unbroken pkg repo
+
+Signed-off-by: Tyler Baker <tyler.baker@linaro.org>
+---
+ share/debian-dev-build.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/share/debian-dev-build.sh b/share/debian-dev-build.sh
+index fca723a..24ae14c 100755
+--- a/share/debian-dev-build.sh
++++ b/share/debian-dev-build.sh
+@@ -65,7 +65,7 @@ else
+ mv -v ./dist/${NAME}*.tar.gz ${DIR}/${NAME}_${VERSION}.orig.tar.gz
+ fi
+ cd ${DIR}
+-git clone https://github.com/Linaro/pkg-${NAME}.git
++git clone https://github.com/EmbeddedAndroid/pkg-${NAME}.git
+ tar -xzf ${NAME}_${VERSION}.orig.tar.gz
+ if [ ! -d ${DIR}/${NAME}-${VERSION} ]; then
+ mv -v ${DIR}/${NAME}-* ${DIR}/${NAME}-${VERSION}
+--
+2.9.3
+
diff --git a/start.sh b/start.sh
new file mode 100755
index 0000000..09ae15f
--- /dev/null
+++ b/start.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+postgres-ready () {
+ echo "Waiting for lavaserver database to be active"
+ while (( $(ps -ef | grep -v grep | grep postgres | grep lavaserver | wc -l) == 0 ))
+ do
+ echo -n "."
+ sleep 1
+ done
+ echo
+ echo "[ ok ] LAVA server ready"
+}
+
+start () {
+ echo "Starting $1"
+ if (( $(ps -ef | grep -v grep | grep -v add_device | grep -v dispatcher-config | grep "$1" | wc -l) > 0 ))
+ then
+ echo "$1 appears to be running"
+ else
+ service "$1" start
+ fi
+}
+
+#remove lava-pid files incase the image is stored without first stopping the services
+rm -f /var/run/lava-*.pid 2> /dev/null
+
+start postgresql
+start apache2
+start lava-server
+start lava-master
+start lava-slave
+start lava-server-gunicorn
+
+postgres-ready
+service apache2 reload #added after the website not running a few times on boot
diff --git a/stop.sh b/stop.sh
new file mode 100755
index 0000000..7b23fb0
--- /dev/null
+++ b/stop.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+service lava-master stop
+service lava-slave stop
+service lava-server stop
+service lava-server-gunicorn stop
+service apache2 stop
+service postgresql stop