From 62d34e400b7cb9e99eb37c6bf8e315a6f3eba82a Mon Sep 17 00:00:00 2001 From: Misty Stanley-Jones Date: Wed, 5 Apr 2017 14:33:38 -0700 Subject: [PATCH] Update Dockerfile to build /edge --- Dockerfile | 92 ++++++++++++++++++++++++++++++--- _config.yml | 2 +- _data/docsarchive/archives.yaml | 3 ++ _includes/treebuilder.html | 5 ++ 4 files changed, 95 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 12f6f4c437..bbdaf6c4f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,8 @@ FROM docs/docker.github.io:docs-base # Debian Jesse. See the contents of docs-base at: # https://github.com/docker/docker.github.io/tree/docs-base +# First, build non-edge (all of this is duplicated later -- that is on purpose) + # Copy master into target directory (skipping files / folders in .dockerignore) # These files represent the current docs COPY . md_source @@ -14,13 +16,10 @@ COPY . md_source # into static HTML in the "target" directory using Jekyll # then nuke the md_source directory. -# Process this as an Edge release -ENV EDGE 1 - ## Branch to pull from, per ref doc ## To get master from svn the svn branch needs to be 'trunk'. To get a branch from svn it needs to be 'branches/branchname' -ENV ENGINE_SVN_BRANCH="branches/17.04.x" -ENV ENGINE_BRANCH="17.04.x" +ENV ENGINE_SVN_BRANCH="branches/17.03.x" +ENV ENGINE_BRANCH="17.03.x" ENV DISTRIBUTION_SVN_BRANCH="branches/release/2.6" ENV DISTRIBUTION_BRANCH="release/2.6" @@ -46,7 +45,88 @@ RUN svn co https://github.com/docker/docker/$ENGINE_SVN_BRANCH/docs/extend md_so && wget -O md_source/engine/api/v1.25/swagger.yaml https://raw.githubusercontent.com/docker/docker/v1.13.0/api/swagger.yaml \ && wget -O md_source/engine/api/v1.26/swagger.yaml https://raw.githubusercontent.com/docker/docker/v17.03.0-ce/api/swagger.yaml \ && wget -O md_source/engine/api/v1.27/swagger.yaml https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/api/swagger.yaml \ - && (if [ $EDGE -eq 1 ]; then jekyll build -s md_source -d target --config md_source/_config-edge.yml; else jekyll build -s md_source -d target; fi)\ + && jekyll build -s md_source -d target --config md_source/_config.yml \ && rm -rf target/apidocs/layouts \ && find target -type f -name '*.html' -print0 | xargs -0 sed -i 's#href="https://docs.docker.com/#href="/#g' \ && rm -rf md_source + + # Next, build edge + + # Copy master into target directory (skipping files / folders in .dockerignore) + # These files represent the current docs + COPY . md_source + + # Move built html into md_source directory so we can reuse the target directory + # to hold the static output. + # Pull reference docs from upstream locations, then build the master docs + # into static HTML in the "target" directory using Jekyll + # then nuke the md_source directory. + + ## Branch to pull from, per ref doc + ## To get master from svn the svn branch needs to be 'trunk'. To get a branch from svn it needs to be 'branches/branchname' + ENV ENGINE_SVN_BRANCH="branches/17.04.x" + ENV ENGINE_BRANCH="17.04.x" + ENV DISTRIBUTION_SVN_BRANCH="branches/release/2.6" + ENV DISTRIBUTION_BRANCH="release/2.6" + + RUN svn co https://github.com/docker/docker/$ENGINE_SVN_BRANCH/docs/extend md_source/engine/extend \ + && wget -O md_source/engine/api/v1.18.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/api/v1.18.md \ + && wget -O md_source/engine/api/v1.19.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/api/v1.19.md \ + && wget -O md_source/engine/api/v1.20.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/api/v1.20.md \ + && wget -O md_source/engine/api/v1.21.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/api/v1.21.md \ + && wget -O md_source/engine/api/v1.22.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/api/v1.22.md \ + && wget -O md_source/engine/api/v1.23.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/api/v1.23.md \ + && wget -O md_source/engine/api/v1.24.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/api/v1.24.md \ + && wget -O md_source/engine/api/version-history.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/api/version-history.md \ + && wget -O md_source/engine/reference/glossary.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/reference/glossary.md \ + && wget -O md_source/engine/reference/builder.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/reference/builder.md \ + && wget -O md_source/engine/reference/run.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/reference/run.md \ + && wget -O md_source/engine/reference/commandline/cli.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/reference/commandline/cli.md \ + && wget -O md_source/engine/deprecated.md https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/docs/deprecated.md \ + && svn co https://github.com/docker/distribution/$DISTRIBUTION_SVN_BRANCH/docs/spec md_source/registry/spec \ + && rm md_source/registry/spec/api.md.tmpl \ + && wget -O md_source/registry/configuration.md https://raw.githubusercontent.com/docker/distribution/$DISTRIBUTION_BRANCH/docs/configuration.md \ + && rm -rf md_source/apidocs/cloud-api-source \ + && rm -rf md_source/tests \ + && wget -O md_source/engine/api/v1.25/swagger.yaml https://raw.githubusercontent.com/docker/docker/v1.13.0/api/swagger.yaml \ + && wget -O md_source/engine/api/v1.26/swagger.yaml https://raw.githubusercontent.com/docker/docker/v17.03.0-ce/api/swagger.yaml \ + && wget -O md_source/engine/api/v1.27/swagger.yaml https://raw.githubusercontent.com/docker/docker/$ENGINE_BRANCH/api/swagger.yaml \ + && jekyll build -s md_source -d target/edge --config md_source/_config-edge.yml \ + && rm -rf target/apidocs/layouts \ + && find target -type f -name '*.html' -print0 | xargs -0 sed -i 's#href="https://docs.docker.com/#href="/#g' \ + # Replace / rewrite some URLs so that links in the edge directory go to the correct + # location. Note that the order in which these replacements are done is + # important. Changing the order may result in replacements being done + # multiple times. + # First, remove the domain from URLs that include the domain + && VER="edge" \ + && BASEURL="$VER/" \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#href="http://docs-stage.docker.com/#href="/#g' \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#src="https://docs-stage.docker.com/#src="/#g' \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#href="https://docs.docker.com/#href="/#g' \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#src="https://docs.docker.com/#src="/#g' \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#href="http://docs.docker.com/#href="/#g' \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#src="http://docs.docker.com/#src="/#g' \ + \ + # Substitute https:// for schema-less resources (src="//analytics.google.com") + # We're replacing them to prevent them being seen as absolute paths below + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#href="//#href="https://#g' \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#src="//#src="https://#g' \ + \ + # And some archive versions already have URLs starting with '/version/' + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#href="/'"$BASEURL"'#href="/#g' \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#src="/'"$BASEURL"'#src="/#g' \ + \ + # Archived versions 1.7 and under use some absolute links, and v1.10 uses + # "relative" links to sources (href="./css/"). Remove those to make them + # work :) + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#href="\./#href="/#g' \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#src="\./#src="/#g' \ + \ + # Create permalinks for archived versions + \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#href="/#href="/'"$BASEURL"'#g' \ + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#src="/#src="/'"$BASEURL"'#g' \ + # Fix 'Back to Stable Docs' URL + && find target/${VER} -type f -name '*.html' -print0 | xargs -0 sed -i 's#
  • Back to Stable docs
  • #
  • Back to Stable docs
  • #g' \ + && rm -rf md_source \ No newline at end of file diff --git a/_config.yml b/_config.yml index 1bdad94f27..e5e3aa2870 100644 --- a/_config.yml +++ b/_config.yml @@ -12,7 +12,7 @@ safe: false lsi: false url: https://docs.docker.com keep_files: ["v1.4", "v1.5", "v1.6", "v1.7", "v1.8", "v1.9", "v1.10", "v1.11", "v1.12", "v1.13"] -edge: true # set to true if the next expected release is going to the edge channel +edge: false # set to true if the next expected release is going to the edge channel gems: - jekyll-redirect-from diff --git a/_data/docsarchive/archives.yaml b/_data/docsarchive/archives.yaml index e1f2f455a0..7ff5b1f88e 100644 --- a/_data/docsarchive/archives.yaml +++ b/_data/docsarchive/archives.yaml @@ -1,3 +1,6 @@ +- archive: + name: edge + image: docs/docker.github.io:latest - archive: name: v17.03 image: docs/docker.github.io:latest diff --git a/_includes/treebuilder.html b/_includes/treebuilder.html index 26d142c860..ba22166f73 100644 --- a/_includes/treebuilder.html +++ b/_includes/treebuilder.html @@ -12,3 +12,8 @@ {% endif %}
  • {{ section.title }}
  • {% endfor %} +{% if site.edge == true %} +
  • Back to Stable docs
  • +{% else %} +
  • Try the CE Edge docs
  • +{% endif %}