Dockerfile (1720B)
1 # Dockerfile for running fuzzing tests. 2 # Used for ASAN. 3 # Note that when running this, you need to add `--cap-add SYS_PTRACE` to the 4 # docker invocation or ASAN won't work. 5 # On taskcluster for ASAN use `features: ["allowPtrace"]`. 6 # See https://github.com/google/sanitizers/issues/764#issuecomment-276700920 7 FROM ubuntu:noble-20240605 8 LABEL maintainer="Martin Thomson <martin.thomson@gmail.com>" 9 10 VOLUME /builds/worker/checkouts 11 VOLUME /builds/worker/workspace 12 VOLUME /builds/worker/.cache 13 14 # %include-run-task 15 16 ENV DEBIAN_FRONTEND noninteractive 17 RUN dpkg --add-architecture i386 18 RUN apt-get update \ 19 && apt-get install -y --no-install-recommends \ 20 build-essential \ 21 ca-certificates \ 22 clang \ 23 clang-tools \ 24 cmake \ 25 curl \ 26 g++-multilib \ 27 git \ 28 gyp \ 29 libboost-dev \ 30 libboost-dev:i386 \ 31 libclang-rt-dev \ 32 libsqlite3-dev \ 33 libsqlite3-dev:i386 \ 34 libxml2-utils \ 35 lib32z1-dev \ 36 linux-libc-dev:i386 \ 37 llvm-dev \ 38 locales \ 39 mercurial \ 40 ninja-build \ 41 pkg-config \ 42 python-is-python3 \ 43 python3-requests \ 44 python3-toml \ 45 unzip \ 46 valgrind \ 47 zlib1g-dev \ 48 && rm -rf /var/lib/apt/lists/* \ 49 && apt-get autoremove -y && apt-get clean -y 50 51 ENV SHELL /bin/bash 52 ENV USER worker 53 ENV LOGNAME $USER 54 ENV HOME /builds/worker 55 ENV LANG en_US.UTF-8 56 ENV LC_ALL $LANG 57 ENV HOST localhost 58 ENV DOMSUF localdomain 59 60 RUN locale-gen $LANG \ 61 && dpkg-reconfigure locales 62 63 RUN userdel ubuntu && \ 64 useradd -d $HOME -s $SHELL -m $USER && \ 65 mkdir -p /builds/worker/workspace && \ 66 mkdir -p /builds/worker/artifacts && \ 67 chown -R $USER: /builds/worker 68 WORKDIR $HOME 69 70 # Set a default command for debugging. 71 CMD ["/bin/bash", "--login"]