summaryrefslogtreecommitdiffstats
path: root/lava-master
diff options
context:
space:
mode:
authorCorentin LABBE <clabbe@baylibre.com>2018-07-16 14:26:44 +0200
committerCorentin LABBE <clabbe@baylibre.com>2018-07-25 21:48:25 +0200
commitb8f561127a2ba09f3c2e49194d8d63b6960023b2 (patch)
treee30eb342b60ad9357e6369bc0c9c1f416b4150e9 /lava-master
parentbaf680990ecb539cde0a16ef5b32a7321dd4538a (diff)
Split dockerfile in two images
The process of building LAVA is hard to maintain. But since we need to be able to go back in time (or just stay longer with a specific version) we need a way to keep a LAVA version. For achieving this, we build a minimal image with just LAVA and tag it with the version of LAVA inside.
Diffstat (limited to 'lava-master')
-rw-r--r--lava-master/Dockerfile68
-rw-r--r--lava-master/scripts/lava-logs97
-rw-r--r--lava-master/scripts/lava-master97
-rw-r--r--lava-master/scripts/lava-server-gunicorn99
-rw-r--r--lava-master/scripts/lava-slave98
-rwxr-xr-xlava-master/scripts/start.sh40
-rwxr-xr-xlava-master/scripts/stop.sh10
7 files changed, 1 insertions, 508 deletions
diff --git a/lava-master/Dockerfile b/lava-master/Dockerfile
index 3299922..100b366 100644
--- a/lava-master/Dockerfile
+++ b/lava-master/Dockerfile
@@ -1,79 +1,13 @@
-FROM bitnami/minideb:stretch
-
-RUN echo "deb http://ftp.fr.debian.org/debian/ stretch-backports main" >> /etc/apt/sources.list
-
-RUN apt-get update
-
-# 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
-
-# e2fsprogs is for libguestfs
-RUN DEBIAN_FRONTEND=noninteractive apt-get -y install \
- locales \
- postgresql \
- screen \
- sudo \
- wget \
- e2fsprogs \
- gnupg \
- vim
-
-RUN 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/ stretch-backports main' > /etc/apt/sources.list.d/lava.list \
- && apt-get clean && apt-get update
-
-RUN DEBIAN_FRONTEND=noninteractive apt-get -y install \
- qemu-system \
- qemu-system-arm \
- qemu-system-i386 \
- ser2net \
- u-boot-tools \
- python-setproctitle
-
-RUN if [ "$(uname -m)" = "x86_64" -o "$(uname -m)" = "x86" ] ;then apt-get -y install qemu-kvm ; fi
-
-#RUN service postgresql start \
-# && DEBIAN_FRONTEND=noninteractive apt-get -y install \
-# lava \
-# && /stop.sh
-
-# Install latest
-COPY scripts/build-lava /
-RUN bash /build-lava lava-dispatcher 2018.4 2018.4-1
-RUN /etc/init.d/postgresql start && \
- bash /build-lava lava-server 2018.4 2018.4-1 && \
- /etc/init.d/postgresql stop
+FROM baylibre/lava-master-base:latest
COPY backup /
-RUN a2enmod proxy \
- && a2enmod proxy_http \
- && a2dissite 000-default \
- && a2ensite lava-server
-
COPY configs/tftpd-hpa /etc/default/tftpd-hpa
RUN git clone https://github.com/BayLibre/lava-healthchecks.git
RUN cp lava-healthchecks/health-checks/* /etc/lava-server/dispatcher-config/health-checks/
COPY health-checks/* /etc/lava-server/dispatcher-config/health-checks/
-# Add services helper utilities to start and stop LAVA
-COPY scripts/stop.sh .
-COPY scripts/start.sh .
-COPY scripts/lava-logs /etc/init.d/
-RUN chmod 755 /etc/init.d/lava-logs
-COPY scripts/lava-master /etc/init.d/
-RUN chmod 755 /etc/init.d/lava-master
-COPY scripts/lava-slave /etc/init.d/
-RUN chmod 755 /etc/init.d/lava-slave
-COPY scripts/lava-server-gunicorn /etc/init.d/
-RUN chmod 755 /etc/init.d/lava-server-gunicorn
-
COPY devices/ /root/devices/
COPY device-types/ /root/device-types/
COPY users/ /root/lava-users/
diff --git a/lava-master/scripts/lava-logs b/lava-master/scripts/lava-logs
deleted file mode 100644
index 69b2f82..0000000
--- a/lava-master/scripts/lava-logs
+++ /dev/null
@@ -1,97 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides: lava-logs
-# Required-Start: $time
-# Required-Stop: $time
-# X-Stop-After: sendsigs
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: lava-logs
-# Description: lava-logs
-### END INIT INFO
-
-#
-# Author: Corentin LABBE <clabbe@baylibre.com>
-#
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="lava-logs"
-NAME=lava-logs
-LOGLEVEL=DEBUG
-
-DAEMON=/usr/bin/lava-server
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Exit if the package is not installed
-[ -x "$DAEMON" ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-[ -r /etc/lava-server/$NAME ] && . /etc/lava-server/$NAME
-
-# Define LSB log_* functions.
-. /lib/lsb/init-functions
-
-do_start()
-{
- # Return
- # 0 if daemon has been started
- # 1 if daemon was already running
- # other if daemon could not be started or a failure occured
- start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- manage lava-logs --level $LOGLEVEL $SOCKET $MASTER_SOCKET $IPV6 $ENCRYPT $MASTER_CERT $SLAVES_CERTS
-}
-
-do_stop()
-{
- # Return
- # 0 if daemon has been stopped
- # 1 if daemon was already stopped
- # other if daemon could not be stopped or a failure occurred
- start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON
-}
-
-case "$1" in
- start)
- log_daemon_msg "Starting $DESC" "$NAME"
- do_start
- case "$?" in
- 0)
- log_end_msg 0 ;;
- 1) log_progress_msg "already started"
- log_end_msg 0 ;;
- *) log_end_msg 1 ;;
- esac
-
- ;;
- stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
- do_stop
- case "$?" in
- 0) log_end_msg 0 ;;
- 1) log_progress_msg "already stopped"
- log_end_msg 0 ;;
- *) log_end_msg 1 ;;
- esac
-
- ;;
- restart|force-reload)
- $0 stop
- $0 start
- ;;
- try-restart)
- $0 status >/dev/null 2>&1 && $0 restart
- ;;
- status)
- status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $?
- ;;
- *)
- echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2
- exit 3
- ;;
-esac
-
-:
-
diff --git a/lava-master/scripts/lava-master b/lava-master/scripts/lava-master
deleted file mode 100644
index 3bd75aa..0000000
--- a/lava-master/scripts/lava-master
+++ /dev/null
@@ -1,97 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides: lava-master
-# Required-Start: $time
-# Required-Stop: $time
-# X-Stop-After: sendsigs
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: lava-master
-# Description: lava-master
-### END INIT INFO
-
-#
-# Author: Corentin LABBE <clabbe@baylibre.com>
-#
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="lava-master"
-NAME=lava-master
-LOGLEVEL=DEBUG
-
-DAEMON=/usr/bin/lava-server
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Exit if the package is not installed
-[ -x "$DAEMON" ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-[ -r /etc/lava-server/$NAME ] && . /etc/lava-server/$NAME
-
-# Define LSB log_* functions.
-. /lib/lsb/init-functions
-
-do_start()
-{
- # Return
- # 0 if daemon has been started
- # 1 if daemon was already running
- # other if daemon could not be started or a failure occured
- start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- manage lava-master --level $LOGLEVEL $SOCKET $MASTER_SOCKET $IPV6 $ENCRYPT $MASTER_CERT $SLAVES_CERTS
-}
-
-do_stop()
-{
- # Return
- # 0 if daemon has been stopped
- # 1 if daemon was already stopped
- # other if daemon could not be stopped or a failure occurred
- start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON
-}
-
-case "$1" in
- start)
- log_daemon_msg "Starting $DESC" "$NAME"
- do_start
- case "$?" in
- 0)
- log_end_msg 0 ;;
- 1) log_progress_msg "already started"
- log_end_msg 0 ;;
- *) log_end_msg 1 ;;
- esac
-
- ;;
- stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
- do_stop
- case "$?" in
- 0) log_end_msg 0 ;;
- 1) log_progress_msg "already stopped"
- log_end_msg 0 ;;
- *) log_end_msg 1 ;;
- esac
-
- ;;
- restart|force-reload)
- $0 stop
- $0 start
- ;;
- try-restart)
- $0 status >/dev/null 2>&1 && $0 restart
- ;;
- status)
- status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $?
- ;;
- *)
- echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2
- exit 3
- ;;
-esac
-
-:
-
diff --git a/lava-master/scripts/lava-server-gunicorn b/lava-master/scripts/lava-server-gunicorn
deleted file mode 100644
index 217ad57..0000000
--- a/lava-master/scripts/lava-server-gunicorn
+++ /dev/null
@@ -1,99 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides: lava-server-gunicorn
-# Required-Start: $time
-# Required-Stop: $time
-# X-Stop-After: sendsigs
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: lava-server-gunicorn
-# Description: lava-server-gunicorn
-### END INIT INFO
-
-#
-# Author: Corentin LABBE <clabbe@baylibre.com>
-#
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="lava-server-gunicorn"
-NAME=lava-server-gunicorn
-LOGLEVEL=DEBUG
-WORKERS=4
-LOGFILE=/var/log/lava-server/gunicorn.log
-RELOAD=
-DAEMON=/usr/bin/gunicorn3
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-
-# Exit if the package is not installed
-[ -x "$DAEMON" ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-[ -r /etc/lava-server/$NAME ] && . /etc/lava-server/$NAME
-
-# Define LSB log_* functions.
-. /lib/lsb/init-functions
-
-do_start()
-{
- # Return
- # 0 if daemon has been started
- # 1 if daemon was already running
- # other if daemon could not be started or a failure occured
- start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- lava_server.wsgi --log-level $LOGLEVEL --log-file $LOGFILE -u lavaserver -g lavaserver --workers $WORKERS $RELOAD
-}
-
-do_stop()
-{
- # Return
- # 0 if daemon has been stopped
- # 1 if daemon was already stopped
- # other if daemon could not be stopped or a failure occurred
- start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON
-}
-
-case "$1" in
- start)
- log_daemon_msg "Starting $DESC" "$NAME"
- do_start
- case "$?" in
- 0)
- log_end_msg 0 ;;
- 1) log_progress_msg "already started"
- log_end_msg 0 ;;
- *) log_end_msg 1 ;;
- esac
-
- ;;
- stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
- do_stop
- case "$?" in
- 0) log_end_msg 0 ;;
- 1) log_progress_msg "already stopped"
- log_end_msg 0 ;;
- *) log_end_msg 1 ;;
- esac
-
- ;;
- restart|force-reload)
- $0 stop
- $0 start
- ;;
- try-restart)
- $0 status >/dev/null 2>&1 && $0 restart
- ;;
- status)
- status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $?
- ;;
- *)
- echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2
- exit 3
- ;;
-esac
-
-:
-
diff --git a/lava-master/scripts/lava-slave b/lava-master/scripts/lava-slave
deleted file mode 100644
index 3ba00f7..0000000
--- a/lava-master/scripts/lava-slave
+++ /dev/null
@@ -1,98 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides: lava-slave
-# Required-Start: $time
-# Required-Stop: $time
-# X-Stop-After: sendsigs
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: lava-slave
-# Description: lava-slave
-### END INIT INFO
-
-#
-# Author: Corentin LABBE <clabbe@baylibre.com>
-#
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="lava-slave"
-NAME=lava-slave
-
-DAEMON=/usr/bin/lava-slave
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-MASTER_URL=tcp://localhost:5556
-LOGGER_URL=tcp://localhost:5555
-LOGLEVEL=DEBUG
-
-# Exit if the package is not installed
-[ -x "$DAEMON" ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-[ -r /etc/lava-dispatcher/$NAME ] && . /etc/lava-dispatcher/$NAME
-
-# Define LSB log_* functions.
-. /lib/lsb/init-functions
-
-do_start()
-{
- # Return
- # 0 if daemon has been started
- # 1 if daemon was already running
- # other if daemon could not be started or a failure occured
- start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- --level $LOGLEVEL --master $MASTER_URL --socket-addr $LOGGER_URL $IPV6 $ENCRYPT $MASTER_CERT $SLAVE_CERT $HOSTNAME
-}
-
-do_stop()
-{
- # Return
- # 0 if daemon has been stopped
- # 1 if daemon was already stopped
- # other if daemon could not be stopped or a failure occurred
- start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --exec $DAEMON
-}
-
-case "$1" in
- start)
- log_daemon_msg "Starting $DESC" "$NAME"
- do_start
- case "$?" in
- 0)
- log_end_msg 0 ;;
- 1) log_progress_msg "already started"
- log_end_msg 0 ;;
- *) log_end_msg 1 ;;
- esac
-
- ;;
- stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
- do_stop
- case "$?" in
- 0) log_end_msg 0 ;;
- 1) log_progress_msg "already stopped"
- log_end_msg 0 ;;
- *) log_end_msg 1 ;;
- esac
-
- ;;
- restart|force-reload)
- $0 stop
- $0 start
- ;;
- try-restart)
- $0 status >/dev/null 2>&1 && $0 restart
- ;;
- status)
- status_of_proc -p $PIDFILE $DAEMON $RSYSLOGD && exit 0 || exit $?
- ;;
- *)
- echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|try-restart|status}" >&2
- exit 3
- ;;
-esac
-
-:
-
diff --git a/lava-master/scripts/start.sh b/lava-master/scripts/start.sh
deleted file mode 100755
index c34fe34..0000000
--- a/lava-master/scripts/start.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/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
-
-/etc/init.d/postgresql start
-
-/setup.sh || exit $?
-
-start apache2 || exit $?
-start lava-logs || exit $?
-start lava-master || exit $?
-start lava-coordinator || exit $?
-start lava-slave || exit $?
-start lava-server-gunicorn || exit $?
-start tftpd-hpa || exit $?
-
-postgres-ready
-service apache2 reload #added after the website not running a few times on boot
diff --git a/lava-master/scripts/stop.sh b/lava-master/scripts/stop.sh
deleted file mode 100755
index 35d503f..0000000
--- a/lava-master/scripts/stop.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-service lava-master stop
-service lava-slave stop
-service lava-logs stop
-service lava-coordinator stop
-service lava-server-gunicorn stop
-service apache2 stop
-/etc/init.d/postgresql stop
-service tftpd-hpa stop