summaryrefslogtreecommitdiffstats
path: root/testing/docker/base-build
diff options
context:
space:
mode:
Diffstat (limited to 'testing/docker/base-build')
-rw-r--r--testing/docker/base-build/Dockerfile20
-rw-r--r--testing/docker/base-build/VERSION1
-rwxr-xr-xtesting/docker/base-build/system-setup.sh46
3 files changed, 67 insertions, 0 deletions
diff --git a/testing/docker/base-build/Dockerfile b/testing/docker/base-build/Dockerfile
new file mode 100644
index 000000000..b5555cc94
--- /dev/null
+++ b/testing/docker/base-build/Dockerfile
@@ -0,0 +1,20 @@
+FROM centos:centos6
+MAINTAINER Jonas Finnemann Jensen <jopsen@gmail.com>
+
+# Run system setup script; this ensures taht the whole process
+# boils down to a single docker layer
+ADD system-setup.sh /tmp/system-setup.sh
+RUN ["/tmp/system-setup.sh"]
+
+# Set variable normally configured at login, by the shells parent process, these
+# are taken from GNU su manual
+ENV HOME /home/worker
+ENV SHELL /bin/bash
+ENV USER worker
+ENV LOGNAME worker
+
+# Declare default working folder
+WORKDIR /home/worker
+
+# Set a default command useful for debugging
+CMD ["/bin/bash", "--login"]
diff --git a/testing/docker/base-build/VERSION b/testing/docker/base-build/VERSION
new file mode 100644
index 000000000..4e379d2bf
--- /dev/null
+++ b/testing/docker/base-build/VERSION
@@ -0,0 +1 @@
+0.0.2
diff --git a/testing/docker/base-build/system-setup.sh b/testing/docker/base-build/system-setup.sh
new file mode 100755
index 000000000..c47c59591
--- /dev/null
+++ b/testing/docker/base-build/system-setup.sh
@@ -0,0 +1,46 @@
+#!/bin/bash -ve
+
+################################### setup.sh ###################################
+
+### Check that we are running as root
+test `whoami` == 'root';
+
+### Add worker user
+# Minimize the number of things which the build script can do, security-wise
+# it's not a problem to let the build script install things with yum. But it
+# really shouldn't do this, so let's forbid root access.
+useradd -d /home/worker -s /bin/bash -m worker;
+
+# Install extra package mirror
+yum install -y epel-release
+
+### Install Useful Packages
+# First we update and upgrade to latest versions.
+yum update -y
+
+# Let's install some goodies, ca-certificates is needed for https with hg.
+# sudo will be required anyway, but let's make it explicit. It nice to have
+# sudo around. We'll also install nano, this is pure bloat I know, but it's
+# useful a text editor.
+yum install -y \
+ ca-certificates \
+ sudo \
+ nano \
+ ;
+
+# Then let's install all firefox build dependencies, these are extracted from
+# mozboot. See python/mozboot/bin/bootstrap.py in mozilla-central.
+yum groupinstall -y \
+ "Development Tools" \
+ "Development Libraries" \
+ "GNOME Software Development"
+
+### Clean up from setup
+# Remove cached packages. Cached package takes up a lot of space and
+# distributing them to workers is wasteful.
+yum clean all
+
+# Remove the setup.sh setup, we don't really need this script anymore, deleting
+# it keeps the image as clean as possible.
+rm $0; echo "Deleted $0";
+