From e6a2557a1077965c424008fb09b87cc78da59ff8 Mon Sep 17 00:00:00 2001 From: Julio Estrada Date: Thu, 27 Feb 2025 23:50:56 -0500 Subject: [PATCH] docker: add highlight.js to Noble v4 environment --- docker/python3/noble/v4/Dockerfile | 106 +++++++++++++++++++++++ docker/python3/noble/v4/Gemfile | 7 ++ docker/python3/noble/v4/README.md | 3 + docker/python3/noble/v4/buildimage.sh | 6 ++ docker/python3/noble/v4/buildrelease.sh | 26 ++++++ docker/python3/noble/v4/requirements.txt | 14 +++ 6 files changed, 162 insertions(+) create mode 100644 docker/python3/noble/v4/Dockerfile create mode 100644 docker/python3/noble/v4/Gemfile create mode 100644 docker/python3/noble/v4/README.md create mode 100755 docker/python3/noble/v4/buildimage.sh create mode 100644 docker/python3/noble/v4/buildrelease.sh create mode 100644 docker/python3/noble/v4/requirements.txt diff --git a/docker/python3/noble/v4/Dockerfile b/docker/python3/noble/v4/Dockerfile new file mode 100644 index 0000000..019a8d0 --- /dev/null +++ b/docker/python3/noble/v4/Dockerfile @@ -0,0 +1,106 @@ +FROM ubuntu:noble +LABEL maintainer="samuel.d.darwin@gmail.com" + +WORKDIR /root +RUN mkdir -p /tmp/build +COPY requirements.txt /tmp/build/requirements.txt +COPY Gemfile /tmp/build/Gemfile +ARG GH_CLI_VERSION=2.63.2 +ARG RCLONE_VERSION=1.68.2 +ARG DOXYGEN_VERSION=1_12_0 + +RUN set -xe \ + && apt-get update \ + && DEBIAN_FRONTEND="noninteractive" apt-get install -y tzdata \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y locales \ + && apt-get install -y \ + apt-transport-https \ + bison \ + ca-certificates \ + clang \ + cmake \ + curl \ + default-jre-headless \ + docbook \ + docbook-xml \ + docbook-xsl \ + docutils-common \ + docutils-doc \ + dos2unix \ + flex \ + ghostscript \ + git \ + graphviz \ + jq \ + libsaxonhe-java \ + openssh-client \ + openssl libssl-dev \ + p7zip-full \ + python-is-python3 \ + python3-pip \ + python3-venv \ + rsync \ + ruby \ + software-properties-common \ + sshpass \ + sudo \ + texlive \ + texlive-latex-extra \ + unzip \ + vim \ + wget \ + xsltproc \ + && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ + && dpkg-reconfigure --frontend=noninteractive locales \ + && update-locale LANG=en_US.UTF-8 \ + && python3 -m venv /opt/venvboostdocs \ + && export PATH=/opt/venvboostdocs/bin:$PATH \ + && mkdir /tmp/aws_cli_install && cd /tmp/aws_cli_install && curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && unzip awscliv2.zip && ./aws/install && cd /root && rm -rf /tmp/aws_cli_install \ + && mkdir /tmp/rclone_install && cd /tmp/rclone_install && wget https://downloads.rclone.org/v${RCLONE_VERSION}/rclone-v${RCLONE_VERSION}-linux-amd64.deb && dpkg -i rclone-v${RCLONE_VERSION}-linux-amd64.deb && cd /root && rm -rf /tmp/rclone_install \ + && curl -s -S --retry 10 -L -o gh_${GH_CLI_VERSION}_linux_amd64.deb https://github.com/cli/cli/releases/download/v${GH_CLI_VERSION}/gh_${GH_CLI_VERSION}_linux_amd64.deb \ + && dpkg -i gh_${GH_CLI_VERSION}_linux_amd64.deb \ + && git clone -b "Release_${DOXYGEN_VERSION}" --depth 1 https://github.com/doxygen/doxygen.git \ + && cd doxygen \ + && cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=Release \ + && cd build \ + && make install \ + && cd && rm -rf doxygen* \ + && curl -s -S --retry 10 -L -o saxonhe.zip https://sourceforge.net/projects/saxon/files/Saxon-HE/9.9/SaxonHE9-9-1-4J.zip/download \ + && unzip saxonhe.zip \ + && rm /usr/share/java/Saxon-HE.jar \ + && cp saxon9he.jar /usr/share/java/Saxon-HE.jar \ + && rm -r * \ + && mkdir -p build && cd build \ + && gem install bundler \ + && pip3 install -r /tmp/build/requirements.txt \ + && bundle install --gemfile=/tmp/build/Gemfile \ + && curl -s -S --retry 10 -L -o rapidxml.zip http://sourceforge.net/projects/rapidxml/files/latest/download \ + && unzip -n -d rapidxml rapidxml.zip \ + && curl -s -S --retry 10 -L -o docbook-xml.zip http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip \ + && unzip -n -d docbook-xml docbook-xml.zip \ + && curl -s -S --retry 10 -L -o docbook-xsl.zip https://sourceforge.net/projects/docbook/files/docbook-xsl/1.79.1/docbook-xsl-1.79.1.zip/download \ + && unzip -n -d docbook-xsl docbook-xsl.zip \ + && chmod -R 777 /opt/venvboostdocs \ + && rm -rf /var/lib/apt/lists/* \ + && apt-get clean -y + +ENV PATH /opt/venvboostdocs/bin:$PATH +ENV NODE_VERSION=18.18.1 +RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash +ENV NVM_DIR=/root/.nvm +RUN . "$NVM_DIR/nvm.sh" && nvm install ${NODE_VERSION} +RUN . "$NVM_DIR/nvm.sh" && nvm use v${NODE_VERSION} +RUN . "$NVM_DIR/nvm.sh" && nvm alias default v${NODE_VERSION} +ENV PATH="/root/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}" +RUN node --version +RUN npm --version +RUN npm install -g gulp-cli@2.3.0 +RUN npm install -g @mermaid-js/mermaid-cli@10.5.1 +RUN npm install -g highlight.js@9.18.3 +# For other CI jobs: +RUN groupadd -g 150 jenkins +RUN useradd jenkins -u 150 -g 150 -m -s /bin/bash +RUN echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/all +ENV LC_ALL en_US.UTF-8 +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US.UTF-8 diff --git a/docker/python3/noble/v4/Gemfile b/docker/python3/noble/v4/Gemfile new file mode 100644 index 0000000..67912e0 --- /dev/null +++ b/docker/python3/noble/v4/Gemfile @@ -0,0 +1,7 @@ +source 'http://rubygems.org' + +gem 'asciidoctor',' 2.0.23' +gem 'asciidoctor-diagram', '2.3.1' +gem 'asciidoctor-multipage', '0.0.19' +gem 'rouge', '4.5.1' +gem 'pygments.rb', '3.0.0' \ No newline at end of file diff --git a/docker/python3/noble/v4/README.md b/docker/python3/noble/v4/README.md new file mode 100644 index 0000000..7266b4f --- /dev/null +++ b/docker/python3/noble/v4/README.md @@ -0,0 +1,3 @@ +Refer to the README.md in the docker/ folder. + +This v4 container adds highlight.js 9.18.3 for improved syntax highlighting in Boost documentation. \ No newline at end of file diff --git a/docker/python3/noble/v4/buildimage.sh b/docker/python3/noble/v4/buildimage.sh new file mode 100755 index 0000000..9f1975c --- /dev/null +++ b/docker/python3/noble/v4/buildimage.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# update the image name as necessary. +imagename="cppalliance/boost_superproject_build:24.04-v4" +# docker build --progress=plain -t $imagename . 2>&1 | tee /tmp/output.txt +docker build -t $imagename . 2>&1 | tee /tmp/output2.txt \ No newline at end of file diff --git a/docker/python3/noble/v4/buildrelease.sh b/docker/python3/noble/v4/buildrelease.sh new file mode 100644 index 0000000..6528236 --- /dev/null +++ b/docker/python3/noble/v4/buildrelease.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Run this inside the container + +set -ex + +cd $HOME + +boostbranch=develop +if [ ! -d project ]; then + git clone https://github.com/boostorg/boost project + cd project + # "git checkout" can also checkout commits + git checkout $boostbranch + cd .. +fi + +export CIRCLECI=true +export CIRCLE_BRANCH=develop +export CIRCLE_WORKING_DIRECTORY=~/project + +wget "https://raw.githubusercontent.com/boostorg/release-tools/master/ci_boost_common.py" -P ${HOME} +wget "https://raw.githubusercontent.com/boostorg/release-tools/master/ci_boost_release.py" -P ${HOME} + +python3 ${HOME}/ci_boost_release.py checkout_post +EOL=LF python3 ${HOME}/ci_boost_release.py test_override \ No newline at end of file diff --git a/docker/python3/noble/v4/requirements.txt b/docker/python3/noble/v4/requirements.txt new file mode 100644 index 0000000..5805a85 --- /dev/null +++ b/docker/python3/noble/v4/requirements.txt @@ -0,0 +1,14 @@ +Jinja2==3.1.4 +MarkupSafe==3.0.2 +Pygments==2.18.0 +Sphinx==5.2.1 +# Sphinx==8.1.3 # when boostorg/gil and boostorg/python are ready +docutils==0.19 +# docutils==0.21.2 # when boostorg/gil and boostorg/python are ready +future==1.0.0 +git+https://github.com/pfultz2/sphinx-boost@8ad7d424c6b613864976546d801439c34a27e3f6 +https://github.com/bfgroup/jam_pygments/archive/master.zip +myst-parser==0.18.1 +# myst-parser==4.0.0 # # when boostorg/gil and boostorg/python are ready +setuptools==75.6.0 +six==1.17.0 \ No newline at end of file