Bug 1123827 - Support cross compiling to Linux using docker from any platform. r=gps draft
authorBenoit Girard <b56girard@gmail.com>
Sat, 04 Jun 2016 13:54:52 -0400
changeset 375364 a88aba41cfa57ead2b25f89523cbc79862eff477
parent 375264 908c5469bcf1211bcced8542835570836b8a7e8a
child 522854 5c16c5512dcd800021104d5da808d51bf80ad616
push id20259
push userb56girard@gmail.com
push dateSat, 04 Jun 2016 17:55:11 +0000
reviewersgps
bugs1123827
milestone49.0a1
Bug 1123827 - Support cross compiling to Linux using docker from any platform. r=gps MozReview-Commit-ID: 7ivlnG6vJme
testing/docker/platform-dev/Dockerfile
testing/docker/platform-dev/VERSION
testing/docker/platform-dev/system-setup.sh
new file mode 100644
--- /dev/null
+++ b/testing/docker/platform-dev/Dockerfile
@@ -0,0 +1,23 @@
+FROM          ubuntu:16.04
+MAINTAINER    Benoit Girard <bgirard@mozilla.com>
+
+RUN useradd -d /home/worker -s /bin/bash -m worker
+WORKDIR /home/worker
+
+# install non-build specific dependencies in a single layer
+ADD           system-setup.sh   /tmp/system-setup.sh
+RUN           bash /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
+# Default docker mozconfig
+ENV           MOZCONFIG     .mozconfig_docker
+ENV           NO_MERCURIAL_SETUP_CHECK 1
+
+# Set a default command useful for debugging
+WORKDIR /home/worker/tree
+CMD ["/bin/bash", "--login"]
new file mode 100644
--- /dev/null
+++ b/testing/docker/platform-dev/VERSION
@@ -0,0 +1,1 @@
+0.1.0
new file mode 100644
--- /dev/null
+++ b/testing/docker/platform-dev/system-setup.sh
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+
+set -ve
+
+test `whoami` == 'root'
+
+mkdir -p /setup
+cd /setup
+
+apt_packages=()
+
+apt_packages+=('autoconf2.13')
+apt_packages+=('build-essential')
+apt_packages+=('ca-certificates')
+apt_packages+=('ccache')
+apt_packages+=('curl')
+apt_packages+=('icecc')
+apt_packages+=('libasound2-dev')
+apt_packages+=('libcurl4-openssl-dev')
+apt_packages+=('libdbus-1-dev')
+apt_packages+=('libdbus-glib-1-dev')
+apt_packages+=('libgconf2-dev')
+apt_packages+=('libgtk-3-dev')
+apt_packages+=('libgtk2.0-dev')
+apt_packages+=('libiw-dev')
+apt_packages+=('libnotify-dev')
+apt_packages+=('libpulse-dev')
+apt_packages+=('libtool')
+apt_packages+=('libtool-bin')
+apt_packages+=('libxt-dev')
+apt_packages+=('mesa-common-dev')
+apt_packages+=('python-dbus')
+apt_packages+=('python-dev')
+apt_packages+=('python-pip')
+apt_packages+=('python-setuptools')
+apt_packages+=('sudo')
+apt_packages+=('tar')
+apt_packages+=('unzip')
+apt_packages+=('uuid')
+apt_packages+=('vim')
+apt_packages+=('wget')
+apt_packages+=('xvfb')
+apt_packages+=('xvfb')
+apt_packages+=('yasm')
+apt_packages+=('yasm')
+apt_packages+=('zip')
+
+apt-get update
+# This allows ubuntu-desktop to be installed without human interaction
+export DEBIAN_FRONTEND=noninteractive
+apt-get install -y --force-yes ${apt_packages[@]}
+
+cd /
+rm -rf /setup ~/.ccache ~/.cache ~/.npm
+apt-get clean
+apt-get autoclean