Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docker: add highlight.js to Noble v4 environment #95

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions docker/python3/noble/v4/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
FROM ubuntu:noble
LABEL maintainer="[email protected]"

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 [email protected]
RUN npm install -g @mermaid-js/[email protected]
RUN npm install -g [email protected]
# 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
7 changes: 7 additions & 0 deletions docker/python3/noble/v4/Gemfile
Original file line number Diff line number Diff line change
@@ -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'
3 changes: 3 additions & 0 deletions docker/python3/noble/v4/README.md
Original file line number Diff line number Diff line change
@@ -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.
6 changes: 6 additions & 0 deletions docker/python3/noble/v4/buildimage.sh
Original file line number Diff line number Diff line change
@@ -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
26 changes: 26 additions & 0 deletions docker/python3/noble/v4/buildrelease.sh
Original file line number Diff line number Diff line change
@@ -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
14 changes: 14 additions & 0 deletions docker/python3/noble/v4/requirements.txt
Original file line number Diff line number Diff line change
@@ -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