summaryrefslogtreecommitdiffstats
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
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.
-rw-r--r--lava-master-base/Dockerfile56
-rw-r--r--lava-master-base/scripts/lava-logs (renamed from lava-master/scripts/lava-logs)0
-rw-r--r--lava-master-base/scripts/lava-master (renamed from lava-master/scripts/lava-master)0
-rw-r--r--lava-master-base/scripts/lava-server-gunicorn (renamed from lava-master/scripts/lava-server-gunicorn)0
-rw-r--r--lava-master-base/scripts/lava-slave (renamed from lava-master/scripts/lava-slave)0
-rwxr-xr-xlava-master-base/scripts/start.sh (renamed from lava-master/scripts/start.sh)0
-rwxr-xr-xlava-master-base/scripts/stop.sh (renamed from lava-master/scripts/stop.sh)0
-rw-r--r--lava-master/Dockerfile68
-rw-r--r--lava-slave-base/Dockerfile44
-rw-r--r--lava-slave-base/scripts/lava-slave (renamed from lava-slave/scripts/lava-slave)0
-rwxr-xr-xlava-slave-base/scripts/start.sh (renamed from lava-slave/scripts/start.sh)0
-rwxr-xr-xlava-slave-base/scripts/stop.sh (renamed from lava-slave/scripts/stop.sh)0
-rw-r--r--lava-slave/Dockerfile49
13 files changed, 105 insertions, 112 deletions
diff --git a/lava-master-base/Dockerfile b/lava-master-base/Dockerfile
new file mode 100644
index 0000000..ef4ff2f
--- /dev/null
+++ b/lava-master-base/Dockerfile
@@ -0,0 +1,56 @@
+FROM bitnami/minideb:stretch
+
+RUN echo "deb http://deb.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 service postgresql start \
+ && DEBIAN_FRONTEND=noninteractive apt-get -y install lava \
+ && sudo -u postgres psql lavaserver -c "DELETE FROM lava_scheduler_app_worker WHERE lava_scheduler_app_worker.hostname = 'example.com';" \
+ && service postgresql stop
+
+RUN a2enmod proxy \
+ && a2enmod proxy_http \
+ && a2dissite 000-default \
+ && a2ensite lava-server
+
+# 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
+
+RUN dpkg -l | grep lava
+
+EXPOSE 80 3079 5555 5556
+
+CMD /start.sh && while [ true ];do sleep 365d; done
diff --git a/lava-master/scripts/lava-logs b/lava-master-base/scripts/lava-logs
index 69b2f82..69b2f82 100644
--- a/lava-master/scripts/lava-logs
+++ b/lava-master-base/scripts/lava-logs
diff --git a/lava-master/scripts/lava-master b/lava-master-base/scripts/lava-master
index 3bd75aa..3bd75aa 100644
--- a/lava-master/scripts/lava-master
+++ b/lava-master-base/scripts/lava-master
diff --git a/lava-master/scripts/lava-server-gunicorn b/lava-master-base/scripts/lava-server-gunicorn
index 217ad57..217ad57 100644
--- a/lava-master/scripts/lava-server-gunicorn
+++ b/lava-master-base/scripts/lava-server-gunicorn
diff --git a/lava-master/scripts/lava-slave b/lava-master-base/scripts/lava-slave
index 3ba00f7..3ba00f7 100644
--- a/lava-master/scripts/lava-slave
+++ b/lava-master-base/scripts/lava-slave
diff --git a/lava-master/scripts/start.sh b/lava-master-base/scripts/start.sh
index c34fe34..c34fe34 100755
--- a/lava-master/scripts/start.sh
+++ b/lava-master-base/scripts/start.sh
diff --git a/lava-master/scripts/stop.sh b/lava-master-base/scripts/stop.sh
index 35d503f..35d503f 100755
--- a/lava-master/scripts/stop.sh
+++ b/lava-master-base/scripts/stop.sh
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-slave-base/Dockerfile b/lava-slave-base/Dockerfile
new file mode 100644
index 0000000..17286ca
--- /dev/null
+++ b/lava-slave-base/Dockerfile
@@ -0,0 +1,44 @@
+FROM bitnami/minideb:stretch
+
+RUN apt-get update
+
+# e2fsprogs is for libguestfs
+RUN \
+ echo 'lava-server lava-server/instance-name string lava-slave-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 && \
+ DEBIAN_FRONTEND=noninteractive apt-get -y install \
+ locales \
+ vim \
+ sudo \
+ python-setproctitle \
+ tftpd-hpa \
+ u-boot-tools \
+ device-tree-compiler \
+ qemu-system \
+ qemu-system-arm \
+ qemu-system-i386 \
+ xnbd-server \
+ e2fsprogs
+
+RUN if [ "$(uname -m)" = "x86_64" -o "$(uname -m)" = "x86" ] ;then apt-get -y install qemu-kvm ; fi
+
+RUN DEBIAN_FRONTEND=noninteractive apt-get -y install wget gnupg
+RUN wget http://images.validation.linaro.org/production-repo/production-repo.key.asc
+RUN apt-key add production-repo.key.asc
+RUN echo 'deb http://images.validation.linaro.org/production-repo/ stretch-backports main' > /etc/apt/sources.list.d/lava.list
+RUN apt-get clean && apt-get update
+RUN DEBIAN_FRONTEND=noninteractive apt-get -y install lava-dispatcher
+
+COPY scripts/lava-slave /etc/init.d/
+RUN chmod 755 /etc/init.d/lava-slave
+
+# Add services helper utilities to start and stop LAVA
+COPY scripts/stop.sh .
+COPY scripts/start.sh .
+
+RUN dpkg -l |grep lava
+
+EXPOSE 69/udp 80
+
+CMD /start.sh
diff --git a/lava-slave/scripts/lava-slave b/lava-slave-base/scripts/lava-slave
index 3ba00f7..3ba00f7 100644
--- a/lava-slave/scripts/lava-slave
+++ b/lava-slave-base/scripts/lava-slave
diff --git a/lava-slave/scripts/start.sh b/lava-slave-base/scripts/start.sh
index 21b6903..21b6903 100755
--- a/lava-slave/scripts/start.sh
+++ b/lava-slave-base/scripts/start.sh
diff --git a/lava-slave/scripts/stop.sh b/lava-slave-base/scripts/stop.sh
index 0f18456..0f18456 100755
--- a/lava-slave/scripts/stop.sh
+++ b/lava-slave-base/scripts/stop.sh
diff --git a/lava-slave/Dockerfile b/lava-slave/Dockerfile
index 4bd14b4..95c4d83 100644
--- a/lava-slave/Dockerfile
+++ b/lava-slave/Dockerfile
@@ -1,40 +1,6 @@
-FROM bitnami/minideb:stretch
+FROM baylibre/lava-slave-base:latest
-RUN apt-get update
-
-# e2fsprogs is for libguestfs
-RUN \
- echo 'lava-server lava-server/instance-name string lava-slave-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 && \
- DEBIAN_FRONTEND=noninteractive apt-get -y install \
- locales \
- vim \
- sudo \
- cu \
- conmux \
- python-setproctitle \
- tftpd-hpa \
- u-boot-tools \
- device-tree-compiler \
- qemu-system \
- qemu-system-arm \
- qemu-system-i386 \
- xnbd-server \
- e2fsprogs
-
-RUN if [ "$(uname -m)" = "x86_64" -o "$(uname -m)" = "x86" ] ;then apt-get -y install qemu-kvm ; fi
-
-# Uncomment the following for having the latest package (you need to comment all build-lava below)
-#RUN DEBIAN_FRONTEND=noninteractive apt-get -y install wget gnupg \
-# && 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 lava-dispatcher
-
-COPY scripts/build-lava /
-RUN sh /build-lava lava-dispatcher 2018.4 2018.4-1
+RUN DEBIAN_FRONTEND=noninteractive apt-get -y install cu conmux
COPY configs/lava-slave /etc/lava-dispatcher/lava-slave
@@ -44,8 +10,8 @@ COPY scripts/cu-loop /usr/local/bin/
COPY conmux/ /etc/conmux/
# Caution to not use any port between the Linux dynamic port range: 32768-60999
-RUN sed -i 's,XNBD_PORT_RANGE_MIN.*,XNBD_PORT_RANGE_MIN=61950,' /usr/lib/python3/dist-packages/lava_dispatcher/utils/constants.py
-RUN sed -i 's,XNBD_PORT_RANGE_MAX.*,XNBD_PORT_RANGE_MAX=62000,' /usr/lib/python3/dist-packages/lava_dispatcher/utils/constants.py
+RUN find /usr/lib/python3/dist-packages/ -iname constants.py | xargs sed -i 's,XNBD_PORT_RANGE_MIN.*,XNBD_PORT_RANGE_MIN=61950,'
+RUN find /usr/lib/python3/dist-packages/ -iname constants.py | xargs sed -i 's,XNBD_PORT_RANGE_MAX.*,XNBD_PORT_RANGE_MAX=62000,'
#conmux need cu >= 1.07-24 See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=336996
RUN echo "deb http://debian.proxad.net/debian/ testing main" >> /etc/apt/sources.list.d/testing.list
@@ -56,13 +22,6 @@ RUN rm /etc/apt/sources.list.d/testing.list
RUN apt-get -y install ser2net
COPY ser2net.conf /etc
-COPY scripts/lava-slave /etc/init.d/
-RUN chmod 755 /etc/init.d/lava-slave
-
-# Add services helper utilities to start and stop LAVA
-COPY scripts/stop.sh .
-COPY scripts/start.sh .
-
# lava-cli dependencies
RUN apt-get -y install python3-setuptools python3-dev python3-zmq
RUN git clone https://git.linaro.org/lava/lavacli.git /root/lavacli && cd /root/lavacli && git checkout v0.7 && python3 setup.py install