automation/taskcluster/docker-builds/Dockerfile
author Robert Relyea <rrelyea@redhat.com>
Thu, 15 Jul 2021 14:23:55 -0700
changeset 15961 b54b0d41e51bc302c58721c08525f85fd5e8d0f9
parent 15846 3c719b62013685a7a91e0e4876242fcd997e5a38
child 15968 1e86f5cfc1cde2b364889c14f0d6393f460bf0d2
permissions -rw-r--r--
Bug 1720232 SQLite calls could timeout in starvation situations. Some of our servers could cause random failures when trying to generate many key pairs from multiple threads. This is caused because some threads would starve long enough for them to give up on getting a begin transaction on sqlite. sqlite only allows one transaction at a time. Also, there were some bugs in error handling of the broken transaction case where NSS would try to cancel a transation after the begin failed (most cases were correct, but one case in particular was problematic). Differential Revision: https://phabricator.services.mozilla.com/D120032

# Dockerfile for building extra builds.  This includes more tools than the
# default image, so it's a fair bit bigger.  Only use this for builds where
# the smaller docker image is missing something.  These builds will run on
# the leaner configuration.
FROM ubuntu:18.04
LABEL maintainer="Martin Thomson <martin.thomson@gmail.com>"

RUN dpkg --add-architecture i386
RUN apt-get update \
 && apt-get install -y --no-install-recommends \
    build-essential \
    ca-certificates \
    clang-4.0 \
    clang \
    cmake \
    curl \
    g++-4.8-multilib \
    g++-5-multilib \
    g++-6-multilib \
    g++-multilib \
    git \
    gyp \
    libelf-dev \
    libdw-dev \
    libssl-dev \
    libssl-dev:i386 \
    libxml2-utils \
    lib32z1-dev \
    linux-libc-dev:i386 \
    llvm-dev \
    locales \
    mercurial \
    ninja-build \
    pkg-config \
    valgrind \
    zlib1g-dev \
    clang-format-3.9 \
 && rm -rf /var/lib/apt/lists/* \
 && apt-get autoremove -y && apt-get clean -y

RUN update-alternatives --install /usr/bin/clang-format \
    clang-format $(which clang-format-3.9) 10

# Latest version of abigail-tools
RUN apt-get update \
 && apt-get install -y libabigail-dev abigail-tools

ENV SHELL /bin/bash
ENV USER worker
ENV LOGNAME $USER
ENV HOME /home/$USER
ENV LANG en_US.UTF-8
ENV LC_ALL $LANG
ENV HOST localhost
ENV DOMSUF localdomain

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"]