# 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 " 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 --no-install-recommends automake libtool libxml2-dev \ && git clone git://sourceware.org/git/libabigail.git /tmp/libabigail \ && cd /tmp/libabigail \ && autoreconf -fi \ && ./configure --prefix=/usr --disable-static --disable-apidoc --disable-manual \ && make && make install \ && rm -rf /tmp/libabigail \ && apt-get remove -y automake libtool libxml2-dev \ && rm -rf /var/lib/apt/lists/* \ && apt-get autoremove -y && apt-get clean -y 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"]