diff options
Diffstat (limited to 'security/nss/automation/taskcluster/docker')
-rw-r--r-- | security/nss/automation/taskcluster/docker/Dockerfile | 57 | ||||
-rw-r--r-- | security/nss/automation/taskcluster/docker/setup.sh | 74 |
2 files changed, 38 insertions, 93 deletions
diff --git a/security/nss/automation/taskcluster/docker/Dockerfile b/security/nss/automation/taskcluster/docker/Dockerfile index b3c2516ba..6df17c5e1 100644 --- a/security/nss/automation/taskcluster/docker/Dockerfile +++ b/security/nss/automation/taskcluster/docker/Dockerfile @@ -1,30 +1,49 @@ -FROM ubuntu:16.04 -MAINTAINER Tim Taubert <ttaubert@mozilla.com> +# Lean image for running the bulk of the NSS CI tests on taskcluster. +FROM ubuntu:18.04 +LABEL maintainer="Martin Thomson <martin.thomson@gmail.com>" -RUN useradd -d /home/worker -s /bin/bash -m worker -WORKDIR /home/worker +RUN dpkg --add-architecture i386 +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + build-essential \ + ca-certificates \ + clang \ + curl \ + g++-multilib \ + git \ + gyp \ + libxml2-utils \ + lib32z1-dev \ + linux-libc-dev:i386 \ + llvm-dev \ + locales \ + mercurial \ + ninja-build \ + pkg-config \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* \ + && apt-get autoremove -y && apt-get clean -y -# Add build and test scripts. -ADD bin /home/worker/bin -RUN chmod +x /home/worker/bin/* - -# Install dependencies. -ADD setup.sh /tmp/setup.sh -RUN bash /tmp/setup.sh - -# Env variables. -ENV HOME /home/worker ENV SHELL /bin/bash ENV USER worker -ENV LOGNAME worker -ENV HOSTNAME taskcluster-worker +ENV LOGNAME $USER +ENV HOME /home/$USER ENV LANG en_US.UTF-8 -ENV LC_ALL en_US.UTF-8 +ENV LC_ALL $LANG ENV HOST localhost ENV DOMSUF localdomain -# Rust + Go -ENV PATH "${PATH}:/home/worker/.cargo/bin/:/usr/lib/go-1.6/bin" +RUN locale-gen $LANG \ + && DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales + +RUN useradd -d $HOME -s $SHELL -m $USER +WORKDIR $HOME + +# Add build and test scripts. +ADD bin $HOME/bin +RUN chmod +x $HOME/bin/* + +USER $USER # Set a default command for debugging. CMD ["/bin/bash", "--login"] diff --git a/security/nss/automation/taskcluster/docker/setup.sh b/security/nss/automation/taskcluster/docker/setup.sh deleted file mode 100644 index 7b90b2e69..000000000 --- a/security/nss/automation/taskcluster/docker/setup.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env bash - -set -v -e -x - -# Update packages. -export DEBIAN_FRONTEND=noninteractive -apt-get -y update && apt-get -y upgrade - -# Need this to add keys for PPAs below. -apt-get install -y --no-install-recommends apt-utils - -apt_packages=() -apt_packages+=('build-essential') -apt_packages+=('ca-certificates') -apt_packages+=('clang-5.0') -apt_packages+=('curl') -apt_packages+=('npm') -apt_packages+=('git') -apt_packages+=('golang-1.6') -apt_packages+=('libxml2-utils') -apt_packages+=('locales') -apt_packages+=('ninja-build') -apt_packages+=('pkg-config') -apt_packages+=('zlib1g-dev') - -# 32-bit builds -apt_packages+=('lib32z1-dev') -apt_packages+=('gcc-multilib') -apt_packages+=('g++-multilib') - -# ct-verif and sanitizers -apt_packages+=('valgrind') - -# Latest Mercurial. -apt_packages+=('mercurial') -apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 41BD8711B1F0EC2B0D85B91CF59CE3A8323293EE -echo "deb http://ppa.launchpad.net/mercurial-ppa/releases/ubuntu xenial main" > /etc/apt/sources.list.d/mercurial.list - -# gcc 4.8 and 6 -apt_packages+=('g++-6') -apt_packages+=('g++-4.8') -apt_packages+=('g++-6-multilib') -apt_packages+=('g++-4.8-multilib') -apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 60C317803A41BA51845E371A1E9377A2BA9EF27F -echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main" > /etc/apt/sources.list.d/toolchain.list - -# Install packages. -apt-get -y update -apt-get install -y --no-install-recommends ${apt_packages[@]} - -# Latest version of abigail-tools -apt-get install -y libxml2-dev autoconf libelf-dev libdw-dev libtool -git clone git://sourceware.org/git/libabigail.git -cd ./libabigail -autoreconf -fi -./configure --prefix=/usr --disable-static --disable-apidoc --disable-manual -make -make install -cd .. -apt-get remove -y libxml2-dev autoconf libtool -rm -rf libabigail - -# Install latest Rust (stable). -su worker -c "curl https://sh.rustup.rs -sSf | sh -s -- -y" - -locale-gen en_US.UTF-8 -dpkg-reconfigure locales - -# Cleanup. -rm -rf ~/.ccache ~/.cache -apt-get autoremove -y -apt-get clean -apt-get autoclean -rm $0 |