diff options
Diffstat (limited to 'testing/docker/base-build')
-rw-r--r-- | testing/docker/base-build/Dockerfile | 20 | ||||
-rw-r--r-- | testing/docker/base-build/VERSION | 1 | ||||
-rwxr-xr-x | testing/docker/base-build/system-setup.sh | 46 |
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"; + |