diff options
-rw-r--r-- | Dockerfile | 62 | ||||
-rw-r--r-- | hack.patch | 26 | ||||
-rwxr-xr-x | start.sh | 35 | ||||
-rwxr-xr-x | stop.sh | 8 |
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 @@ -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 |