anchor.diff:  # Distribution
   ARG DISTRIBUTION_BRANCH="release/2.6"
   
  +
  +###
  +# Set up base stages for building and deploying
  +###
  +
   # Get basic configs and Jekyll env
  -FROM docs/docker.github.io:docs-builder AS builder
  +FROM docs/docker.github.io:docs-builder AS builderbase
   ENV TARGET=/usr/share/nginx/html
   WORKDIR /usr/src/app/md_source/
   
  
positive.code: # from the master branch of https://github.com/docker/docker.github.io
  #
  # Here is the sequence:
  # 1.  Set up the build
  # 2.  Fetch upstream resources
  # 3.  Build static HTML from master
  # 4.  Reset to clean tiny nginx image
  # 5.  Copy Nginx config and archive HTML, which don't change often and can be cached
  # 6.  Copy static HTML from previous build stage (step 3)
  #
  # When the image is run, it starts Nginx and serves the docs at port 4000
  
  # Engine
  ARG ENGINE_BRANCH="18.09.x"
  
negative.code: ENV DISTRIBUTION_BRANCH=${DISTRIBUTION_BRANCH}
  ENV DISTRIBUTION_SVN_BRANCH=branches/${DISTRIBUTION_BRANCH}
  
  
  # Reset to alpine so we don't get any docs source or extra apps
  FROM nginx:alpine AS deploybase
  ENV TARGET=/usr/share/nginx/html
  
  # Get the nginx config from the nginx-onbuild image
  # This hardly ever changes so should usually be cached
  COPY --from=docs/docker.github.io:nginx-onbuild /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf
  
  # Set the default command to serve the static HTML site
  CMD echo -e "Docker docs are viewable at:\nhttp://0.0.0.0:4000"; exec nginx -g 'daemon off;'
  
  
  # Build the archived docs
  # these docs barely change, so can be cached
  FROM deploybase AS archives
  # Get all the archive static HTML and put it into place. To add a new archive,
  # add it here, and ALSO edit _data/docsarchives/archives.yaml to add it to the drop-down
  COPY --from=docs/docker.github.io:v17.03 ${TARGET} ${TARGET}
  COPY --from=docs/docker.github.io:v17.06 ${TARGET} ${TARGET}
  COPY --from=docs/docker.github.io:v17.09 ${TARGET} ${TARGET}
  COPY --from=docs/docker.github.io:v17.12 ${TARGET} ${TARGET}
  COPY --from=docs/docker.github.io:v18.03 ${TARGET} ${TARGET}
  
  # Fetch upstream resources (reference documentation)
  # Only add the files that are needed to build these reference docs, so that
  # these docs are only rebuilt if changes were made to the configuration.
  FROM builderbase AS upstream-resources
  COPY ./_scripts/fetch-upstream-resources.sh ./_scripts/
  COPY ./_config.yml .
  COPY ./_data/toc.yaml ./_data/
  RUN bash ./_scripts/fetch-upstream-resources.sh .
  
  
  # Build the current docs from the checked out branch
  FROM builderbase AS current
  COPY . .
  COPY --from=upstream-resources /usr/src/app/md_source/. ./
  
  
  # Build the static HTML, now that everything is in place
  RUN jekyll build -d ${TARGET}
  
  # Fix up some links, don't touch the archives
  RUN find ${TARGET} -type f -name '*.html' | grep -vE "v[0-9]+\." | while read i; do sed -i 's#href="https://docs.docker.com/#href="/#g' "$i"; done
  
  
  # Docs with archives (for deploy)
  FROM archives AS deploy
  
  # Add the current version of the docs
  COPY --from=current ${TARGET} ${TARGET}
  