| # 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 \ |
| && rm -rf /var/lib/apt/lists/* \ |
| && apt-get autoremove -y && apt-get clean -y |
| |
| # 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"] |