FROM python:3.12-slim-bookworm LABEL org.opencontainers.image.source="https://github.com/wolfSSL/wolfTPM" RUN apt-get update \ && apt-get install -y --no-install-recommends \ bash git make patch perl librsvg2-bin \ doxygen build-essential cmake \ libfmt-dev nlohmann-json3-dev libspdlog-dev libcxxopts-dev \ pandoc texlive-xetex texlive-latex-extra texlive-fonts-recommended \ texlive-lang-chinese texlive-lang-japanese \ fonts-noto-core fonts-noto-mono fonts-noto-cjk lmodern \ && rm -rf /var/lib/apt/lists/* # doxybook2 (wolfSSL fork) turns the Doxygen XML into the API-reference markdown. # Both sources are pinned so this content-addressed image rebuilds identically. RUN git clone --depth 1 --branch v3.5.0 https://github.com/pantor/inja /tmp/inja \ && cmake -S /tmp/inja -B /tmp/inja/build -DBUILD_TESTING=OFF -DINJA_BUILD_TESTS=OFF \ && cmake --install /tmp/inja/build \ && git clone https://github.com/dgarske/doxybook2 /tmp/doxybook2 \ && git -C /tmp/doxybook2 checkout d2edb6eda200f8e62d5f46553e5da1161a4f19b3 \ && cmake -S /tmp/doxybook2 -B /tmp/doxybook2/build \ && cmake --build /tmp/doxybook2/build --target install \ && rm -rf /tmp/inja /tmp/doxybook2 COPY requirements.txt /tmp/requirements-docs.txt RUN python -m pip install --no-cache-dir -r /tmp/requirements-docs.txt WORKDIR /work