Anastasia Klimchuk has submitted this change. ( https://review.coreboot.org/c/flashrom/+/75344 )
Change subject: util: Add docker to automate creation of documentation ......................................................................
util: Add docker to automate creation of documentation
Build with: docker build --force-rm -t "doc.flashrom.org" \ "$PWD/util/docker/flashrom.org/"
Generate HTML files: mkdir -p "$PWD/doc/_build/" docker run -it --rm \ --user "$(id -u):$(id -g)" \ -v "$PWD/:/data-in/:ro" \ -v "$PWD/doc/_build/:/data-out/" \ doc.flashrom.org
Live web server: docker run -it --rm \ --net=host -v "$PWD/:/data-in/:ro" \ doc.flashrom.org livehtml
Change-Id: I889fa5f98e2fd6ef896ba4bb30aa5d985ff82622 Signed-off-by: Stefan Reinauer stefan.reinauer@coreboot.org Tested-by: Stefan Reinauer stefan.reinauer@coreboot.org Reviewed-on: https://review.coreboot.org/c/flashrom/+/75344 Reviewed-by: Anastasia Klimchuk aklm@chromium.org Tested-by: Anastasia Klimchuk aklm@chromium.org --- A util/docker/flashrom.org/Dockerfile A util/docker/flashrom.org/README.md A util/docker/flashrom.org/ditaa.sh A util/docker/flashrom.org/makeSphinx.sh 4 files changed, 106 insertions(+), 0 deletions(-)
Approvals: Anastasia Klimchuk: Verified; Looks good to me, approved
diff --git a/util/docker/flashrom.org/Dockerfile b/util/docker/flashrom.org/Dockerfile new file mode 100644 index 0000000..23f5f50 --- /dev/null +++ b/util/docker/flashrom.org/Dockerfile @@ -0,0 +1,29 @@ +FROM alpine:3.8 + +COPY makeSphinx.sh /makeSphinx.sh + +ADD https://sourceforge.net/projects/ditaa/files/ditaa/0.9/ditaa0_9.zip/download /tmp/ditaa.zip + +RUN apk add --no-cache python3 make bash git openjdk8-jre ttf-dejavu fontconfig \ + && pip3 install --upgrade --no-cache-dir pip \ + && pip3 install --no-cache-dir \ + sphinx===1.8.3 \ + sphinx_rtd_theme===0.4.2 \ + recommonmark===0.5.0 \ + sphinx_autobuild===0.7.1 \ + sphinxcontrib-ditaa===0.6 \ + && chmod 755 /makeSphinx.sh +RUN cd /tmp \ + && unzip ditaa.zip \ + && mv ditaa0_9.jar /usr/lib +ADD ditaa.sh /usr/bin/ditaa + +VOLUME /data-in /data-out + +# For Sphinx-autobuild +# Port 8000 - HTTP server +# Port 35729 - websockets connection to allow automatic browser reloads after each build +EXPOSE 8000 35729 + +ENTRYPOINT ["/bin/bash", "/makeSphinx.sh"] +CMD [] diff --git a/util/docker/flashrom.org/README.md b/util/docker/flashrom.org/README.md new file mode 100644 index 0000000..313d0d7 --- /dev/null +++ b/util/docker/flashrom.org/README.md @@ -0,0 +1,32 @@ +# doc.coreboot.org + Docker container for generating and developing documentation for doc.coreboot.org + +**NOTE**: All paths are from the base of the coreboot git repo. + +### Build + +```sh + docker build --force-rm -t "doc.flashrom.org" "$PWD/util/docker/flashrom.org/" +``` + +### Generating production HTML + +```sh +# To ensure the output directory is given the correct permissions, make sure to +# created it before running docker the first time. +mkdir -p "$PWD/doc/_build/" + +docker run -it --rm \ + --user "$(id -u):$(id -g)" \ + -v "$PWD/:/data-in/:ro" \ + -v "$PWD/doc/_build/:/data-out/" \ + doc.flashrom.org +``` + +### live reloaded with web server +On the host machine, open a browser to the address http://0.0.0.0:8000 +```sh +docker run -it --rm \ + --net=host -v "$PWD/:/data-in/:ro" \ + doc.flashrom.org livehtml +``` diff --git a/util/docker/flashrom.org/ditaa.sh b/util/docker/flashrom.org/ditaa.sh new file mode 100755 index 0000000..637379f --- /dev/null +++ b/util/docker/flashrom.org/ditaa.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env sh +exec java -jar /usr/lib/ditaa0_9.jar $* diff --git a/util/docker/flashrom.org/makeSphinx.sh b/util/docker/flashrom.org/makeSphinx.sh new file mode 100755 index 0000000..5b6ea03 --- /dev/null +++ b/util/docker/flashrom.org/makeSphinx.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +if [ "$1" == "livehtml" ]; then + echo "Starting live documentation build" + cd /data-in/ && sphinx-autobuild -b html doc /tmp/build/html +else + echo "Starting production documentation build" + cd /data-in/ \ + && sphinx-build -b html doc /tmp/build/html \ + && rm -rf /data-out/* \ + && mv /tmp/build/html/* /data-out/ +fi