zeek/auxil/spicy/ci/Dockerfile
Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

55 lines
2.1 KiB
Docker

# Copyright (c) 2020-now by the Zeek Project. See LICENSE for details.
FROM ubuntu:22.04
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
CMD ["sh"]
ENV DEBIAN_FRONTEND=noninteractive
ENV PATH="/opt/spicy/bin:${PATH}"
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl ca-certificates gnupg2 \
# Spicy build and test dependencies.
&& apt-get install -y --no-install-recommends \
bison \
ccache \
doxygen \
flex \
g++ \
git \
jq \
libfl-dev \
libssl-dev \
locales-all \
make \
ninja-build \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-wheel \
rsync \
zlib1g-dev \
&& pip3 install --no-cache-dir "btest>=0.66" pre-commit \
# Spicy doc dependencies.
&& apt-get install -y --no-install-recommends python3-sphinx python3-sphinx-rtd-theme doxygen \
&& pip3 install --no-cache-dir --upgrade pygments \
# GCC.
&& apt-get install -y --no-install-recommends g++ gcc \
# LLVM toolchain.
&& echo 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' >> /etc/apt/sources.list.d/llvm19.list \
&& echo 'deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' >> /etc/apt/sources.list.d/llvm19.list \
&& curl https://apt.llvm.org/llvm-snapshot.gpg.key -o /etc/apt/trusted.gpg.d/llvm.asc \
&& apt-get update \
&& apt-get install -y --no-install-recommends llvm-19-dev clang-19 libclang-19-dev clang-tidy-19 libclang-rt-19-dev \
# Install a recent CMake for `SKIP_LINTING` support.
&& test -f /usr/share/doc/kitware-archive-keyring/copyright || \
curl https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null \
&& echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null \
&& apt-get update \
&& apt-get install -y --no-install-recommends kitware-archive-keyring cmake \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*