mirror of https://github.com/docker/docs.git
Speed up site rendering for authors (#5241)
* rough pass at tabs, jsonification * GHPages 147, authoring YML, sitemap via plugin, working JS * Update Gemfile * Removing dk.rb artifact * Simplifying authoring YML even more * More YML simplification * Remove jekyll-seo -- even more perf gain * Glossary support * Collections support * Incremental off; GH Pages 172 gets build time to 50 seconds
This commit is contained in:
parent
48c139d98c
commit
d17340d394
36
Gemfile
36
Gemfile
|
@ -3,5 +3,37 @@ source "https://rubygems.org"
|
||||||
# Update me once in a while: https://github.com/github/pages-gem/releases
|
# Update me once in a while: https://github.com/github/pages-gem/releases
|
||||||
# Please ensure, before upgrading, that this version exists as a tag in starefossen/github-pages here:
|
# Please ensure, before upgrading, that this version exists as a tag in starefossen/github-pages here:
|
||||||
# https://hub.docker.com/r/starefossen/github-pages/tags/
|
# https://hub.docker.com/r/starefossen/github-pages/tags/
|
||||||
gem "github-pages", "137"
|
#
|
||||||
gem 'wdm', '>= 0.1.0' if Gem.win_platform?
|
# Fresh install?
|
||||||
|
#
|
||||||
|
# Windows:
|
||||||
|
# Install Ruby 2.3.3 x64 and download the Development Kit for 64-bit:
|
||||||
|
# https://rubyinstaller.org/downloads/
|
||||||
|
#
|
||||||
|
# Run this to install devkit after extracting:
|
||||||
|
# ruby <path_to_devkit>/dk.rb init
|
||||||
|
# ruby <path_to_devkit>/dk.rb install
|
||||||
|
#
|
||||||
|
# then:
|
||||||
|
# gem install bundler
|
||||||
|
# bundle install
|
||||||
|
#
|
||||||
|
# Mac/Linux:
|
||||||
|
# Install Ruby 2.3.x and then:
|
||||||
|
# gem install bundler
|
||||||
|
# bundle install
|
||||||
|
#
|
||||||
|
# ---------------------
|
||||||
|
# Upgrading? Probably best to reset your environment:
|
||||||
|
#
|
||||||
|
# Remove all gems:
|
||||||
|
# gem uninstall -aIx
|
||||||
|
#
|
||||||
|
# (If Windows, do the dk.rb bits above, then go to the next step below)
|
||||||
|
|
||||||
|
# Install anew:
|
||||||
|
# gem install bundler
|
||||||
|
# bundle install
|
||||||
|
|
||||||
|
gem "github-pages", "172"
|
||||||
|
gem 'wdm' if Gem.win_platform?
|
||||||
|
|
26
_config.yml
26
_config.yml
|
@ -61,10 +61,10 @@ collections:
|
||||||
samples:
|
samples:
|
||||||
output: true
|
output: true
|
||||||
|
|
||||||
gems:
|
plugins:
|
||||||
- jekyll-redirect-from
|
- jekyll-redirect-from
|
||||||
- jekyll-seo-tag
|
|
||||||
- jekyll-relative-links
|
- jekyll-relative-links
|
||||||
|
- jekyll-sitemap
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
-
|
-
|
||||||
|
@ -164,20 +164,17 @@ defaults:
|
||||||
- scope:
|
- scope:
|
||||||
path: "datacenter/dtr/2.2"
|
path: "datacenter/dtr/2.2"
|
||||||
values:
|
values:
|
||||||
hide_from_sitemap: true
|
|
||||||
ucp_version: "2.1"
|
ucp_version: "2.1"
|
||||||
dtr_version: "2.2"
|
dtr_version: "2.2"
|
||||||
docker_image: "docker/dtr:2.2.10"
|
docker_image: "docker/dtr:2.2.10"
|
||||||
- scope:
|
- scope:
|
||||||
path: "datacenter/dtr/2.1"
|
path: "datacenter/dtr/2.1"
|
||||||
values:
|
values:
|
||||||
hide_from_sitemap: true
|
|
||||||
ucp_version: "2.0"
|
ucp_version: "2.0"
|
||||||
dtr_version: "2.1"
|
dtr_version: "2.1"
|
||||||
- scope:
|
- scope:
|
||||||
path: "datacenter/dtr/2.0"
|
path: "datacenter/dtr/2.0"
|
||||||
values:
|
values:
|
||||||
hide_from_sitemap: true
|
|
||||||
ucp_version: "1.1"
|
ucp_version: "1.1"
|
||||||
dtr_version: "2.0"
|
dtr_version: "2.0"
|
||||||
- scope:
|
- scope:
|
||||||
|
@ -189,39 +186,20 @@ defaults:
|
||||||
- scope:
|
- scope:
|
||||||
path: "datacenter/ucp/2.1"
|
path: "datacenter/ucp/2.1"
|
||||||
values:
|
values:
|
||||||
hide_from_sitemap: true
|
|
||||||
ucp_version: "2.1"
|
ucp_version: "2.1"
|
||||||
dtr_version: "2.2"
|
dtr_version: "2.2"
|
||||||
docker_image: "docker/ucp:2.1.5"
|
docker_image: "docker/ucp:2.1.5"
|
||||||
- scope:
|
- scope:
|
||||||
path: "datacenter/ucp/2.0"
|
path: "datacenter/ucp/2.0"
|
||||||
values:
|
values:
|
||||||
hide_from_sitemap: true
|
|
||||||
ucp_version: "2.0"
|
ucp_version: "2.0"
|
||||||
dtr_version: "2.1"
|
dtr_version: "2.1"
|
||||||
docker_image: "docker/ucp:2.0.3"
|
docker_image: "docker/ucp:2.0.3"
|
||||||
- scope:
|
- scope:
|
||||||
path: "datacenter/ucp/1.1"
|
path: "datacenter/ucp/1.1"
|
||||||
values:
|
values:
|
||||||
hide_from_sitemap: true
|
|
||||||
ucp_version: "1.1"
|
ucp_version: "1.1"
|
||||||
dtr_version: "2.0"
|
dtr_version: "2.0"
|
||||||
- scope:
|
|
||||||
path: "apidocs/v1.3.3"
|
|
||||||
values:
|
|
||||||
hide_from_sitemap: true
|
|
||||||
- scope:
|
|
||||||
path: "apidocs/v1.4.0"
|
|
||||||
values:
|
|
||||||
hide_from_sitemap: true
|
|
||||||
- scope:
|
|
||||||
path: "apidocs/v2.0.0"
|
|
||||||
values:
|
|
||||||
hide_from_sitemap: true
|
|
||||||
- scope:
|
|
||||||
path: "apidocs/v2.0.1"
|
|
||||||
values:
|
|
||||||
hide_from_sitemap: true
|
|
||||||
|
|
||||||
# Assets
|
# Assets
|
||||||
#
|
#
|
||||||
|
|
|
@ -0,0 +1,123 @@
|
||||||
|
name: Docker Documentation
|
||||||
|
markdown: kramdown
|
||||||
|
kramdown:
|
||||||
|
input: GFM
|
||||||
|
html_to_native: true
|
||||||
|
hard_wrap: false
|
||||||
|
syntax_highlighter: rouge
|
||||||
|
toc_levels: 2..3
|
||||||
|
permalink: pretty
|
||||||
|
safe: false
|
||||||
|
lsi: false
|
||||||
|
url: https://docs.docker.com
|
||||||
|
incremental: false
|
||||||
|
|
||||||
|
# Component versions -- address like site.docker_ce_stable_version
|
||||||
|
# You can't have - characters in these for non-YAML reasons
|
||||||
|
|
||||||
|
# TO USE ME:
|
||||||
|
# jekyll serve --incremental --config _config_authoring.yml
|
||||||
|
|
||||||
|
docker_ce_stable_version: "17.09"
|
||||||
|
latest_stable_docker_engine_api_version: "1.32"
|
||||||
|
docker_ce_edge_version: "17.09"
|
||||||
|
docker_ee_version: "17.06"
|
||||||
|
compose_version: "1.16.1"
|
||||||
|
machine_version: "0.12.2"
|
||||||
|
distribution_version: "2.6"
|
||||||
|
|
||||||
|
ucp_versions:
|
||||||
|
- version: "2.2"
|
||||||
|
latest: true
|
||||||
|
path: /datacenter/ucp/2.2/guides/
|
||||||
|
- version: "2.1"
|
||||||
|
path: /datacenter/ucp/2.1/guides/
|
||||||
|
- version: "2.0"
|
||||||
|
path: /datacenter/ucp/2.0/guides/
|
||||||
|
- version: "1.1"
|
||||||
|
path: /datacenter/ucp/1.1/overview/
|
||||||
|
|
||||||
|
dtr_versions:
|
||||||
|
- version: "2.3"
|
||||||
|
latest: true
|
||||||
|
path: /datacenter/dtr/2.3/guides/
|
||||||
|
- version: "2.2"
|
||||||
|
path: /datacenter/dtr/2.2/guides/
|
||||||
|
- version: "2.1"
|
||||||
|
path: /datacenter/dtr/2.1/guides/
|
||||||
|
- version: "2.0"
|
||||||
|
path: /datacenter/dtr/2.0/
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
-
|
||||||
|
scope:
|
||||||
|
path: ""
|
||||||
|
type: "pages"
|
||||||
|
values:
|
||||||
|
layout: docs
|
||||||
|
defaultassignee: johndmulhausen
|
||||||
|
toc_min: 2
|
||||||
|
toc_max: 3
|
||||||
|
tree: true
|
||||||
|
- scope:
|
||||||
|
path: "engine"
|
||||||
|
values:
|
||||||
|
win_server_zip_url: "https://download.docker.com/components/engine/windows-server/17.06/docker-17.06.2-ee-4.zip"
|
||||||
|
- scope:
|
||||||
|
path: "datacenter"
|
||||||
|
values:
|
||||||
|
ucp_latest_image: "docker/ucp:2.2.3"
|
||||||
|
dtr_latest_image: "docker/dtr:2.3.4"
|
||||||
|
enterprise: true
|
||||||
|
- scope:
|
||||||
|
path: "datacenter/dtr/2.3"
|
||||||
|
values:
|
||||||
|
dtr_org: "docker"
|
||||||
|
dtr_repo: "dtr"
|
||||||
|
dtr_version: "2.3.4"
|
||||||
|
- scope:
|
||||||
|
path: "datacenter/dtr/2.2"
|
||||||
|
values:
|
||||||
|
ucp_version: "2.1"
|
||||||
|
dtr_version: "2.2"
|
||||||
|
docker_image: "docker/dtr:2.2.9"
|
||||||
|
- scope:
|
||||||
|
path: "datacenter/dtr/2.1"
|
||||||
|
values:
|
||||||
|
ucp_version: "2.0"
|
||||||
|
dtr_version: "2.1"
|
||||||
|
- scope:
|
||||||
|
path: "datacenter/dtr/2.0"
|
||||||
|
values:
|
||||||
|
ucp_version: "1.1"
|
||||||
|
dtr_version: "2.0"
|
||||||
|
- scope:
|
||||||
|
path: "datacenter/ucp/2.2"
|
||||||
|
values:
|
||||||
|
ucp_org: "docker"
|
||||||
|
ucp_repo: "ucp"
|
||||||
|
ucp_version: "2.2.3"
|
||||||
|
- scope:
|
||||||
|
path: "datacenter/ucp/2.1"
|
||||||
|
values:
|
||||||
|
ucp_version: "2.1"
|
||||||
|
dtr_version: "2.2"
|
||||||
|
docker_image: "docker/ucp:2.1.5"
|
||||||
|
- scope:
|
||||||
|
path: "datacenter/ucp/2.0"
|
||||||
|
values:
|
||||||
|
ucp_version: "2.0"
|
||||||
|
dtr_version: "2.1"
|
||||||
|
docker_image: "docker/ucp:2.0.3"
|
||||||
|
- scope:
|
||||||
|
path: "datacenter/ucp/1.1"
|
||||||
|
values:
|
||||||
|
ucp_version: "1.1"
|
||||||
|
dtr_version: "2.0"
|
||||||
|
|
||||||
|
# Assets
|
||||||
|
#
|
||||||
|
# We specify the directory for Jekyll so we can use @imports.
|
||||||
|
sass:
|
||||||
|
sass_dir: _scss
|
||||||
|
style: :compressed
|
|
@ -153,7 +153,6 @@ guides:
|
||||||
- path: /release-notes/docker-ce/
|
- path: /release-notes/docker-ce/
|
||||||
title: Docker CE
|
title: Docker CE
|
||||||
nosync: true
|
nosync: true
|
||||||
|
|
||||||
- sectiontitle: Get started
|
- sectiontitle: Get started
|
||||||
section:
|
section:
|
||||||
- sectiontitle: Get started with Docker
|
- sectiontitle: Get started with Docker
|
||||||
|
@ -176,7 +175,6 @@ guides:
|
||||||
title: Network containers
|
title: Network containers
|
||||||
- path: /engine/docker-overview/
|
- path: /engine/docker-overview/
|
||||||
title: Docker overview
|
title: Docker overview
|
||||||
|
|
||||||
- sectiontitle: Develop with Docker
|
- sectiontitle: Develop with Docker
|
||||||
section:
|
section:
|
||||||
- sectiontitle: Develop your apps on Docker
|
- sectiontitle: Develop your apps on Docker
|
||||||
|
@ -240,7 +238,6 @@ guides:
|
||||||
title: Understand container communication
|
title: Understand container communication
|
||||||
- path: /engine/userguide/networking/default_network/ipv6/
|
- path: /engine/userguide/networking/default_network/ipv6/
|
||||||
title: IPv6 with Docker
|
title: IPv6 with Docker
|
||||||
|
|
||||||
- sectiontitle: Manage application data
|
- sectiontitle: Manage application data
|
||||||
section:
|
section:
|
||||||
- path: /engine/admin/volumes/
|
- path: /engine/admin/volumes/
|
||||||
|
@ -273,7 +270,6 @@ guides:
|
||||||
title: Use the ZFS storage driver
|
title: Use the ZFS storage driver
|
||||||
- path: /engine/userguide/storagedriver/vfs-driver/
|
- path: /engine/userguide/storagedriver/vfs-driver/
|
||||||
title: Use the VFS storage driver
|
title: Use the VFS storage driver
|
||||||
|
|
||||||
- sectiontitle: Run your app in production
|
- sectiontitle: Run your app in production
|
||||||
section:
|
section:
|
||||||
- sectiontitle: The basics
|
- sectiontitle: The basics
|
||||||
|
@ -453,7 +449,6 @@ guides:
|
||||||
path: /engine/extend/config/
|
path: /engine/extend/config/
|
||||||
- path: /engine/extend/plugin_api/
|
- path: /engine/extend/plugin_api/
|
||||||
title: Plugins API
|
title: Plugins API
|
||||||
|
|
||||||
- sectiontitle: Standards and compliance
|
- sectiontitle: Standards and compliance
|
||||||
section:
|
section:
|
||||||
- path: /compliance/
|
- path: /compliance/
|
||||||
|
@ -464,7 +459,6 @@ guides:
|
||||||
title: FedRAMP
|
title: FedRAMP
|
||||||
- path: /compliance/cis/
|
- path: /compliance/cis/
|
||||||
title: CIS
|
title: CIS
|
||||||
|
|
||||||
- sectiontitle: Open source at Docker
|
- sectiontitle: Open source at Docker
|
||||||
section:
|
section:
|
||||||
- path: /opensource/
|
- path: /opensource/
|
||||||
|
|
|
@ -17,12 +17,12 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="nav-container">
|
<div class="nav-container">
|
||||||
<div id="tabs">
|
<div id="tabs">
|
||||||
<ul class="tabs">
|
<ul class="tabs" id="jsTOCHorizontal">
|
||||||
{% include treebuilder.html %}
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="ctrl-right hidden-xs hidden-sm">
|
<div class="ctrl-right hidden-xs hidden-sm">
|
||||||
<a href="javascript:void(0)" id="menu-toggle"><i class="fa fa-indent" aria-hidden="true"></i></a>
|
<a href="javascript:void(0)" id="menu-toggle"><i class="fa fa-indent" aria-hidden="true"></i></a>
|
||||||
{% include archive-list.html %}
|
{% include archive-list.html %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{% if page.landing == true %}<div id="navbar" class="nav-sidebar">{%else%}<div id="navbar" class="nav-sidebar">{% endif %}
|
{% if page.landing == true %}<div id="navbar" class="nav-sidebar">{%else%}<div id="navbar" class="nav-sidebar">{% endif %}
|
||||||
<ul class="nav">
|
<ul class="nav" id="jsTOCLeftNav">
|
||||||
{{ leftnav }}
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
{% assign foundBranch="false" %}
|
|
||||||
{% for item in tree %}
|
|
||||||
{% if item.generateTOC %}{% include generateTOC.html tocToGenerate=item.generateTOC %}{% else %}
|
|
||||||
{% if item.sectiontitle %}{% if foundBranch=="false" %}{% capture treeString %}{{ item.section | downcase }}{% endcapture %}{% capture pageURLString %}"{{ page.url }}"{% endcapture %}{% else %}{% assign treeString="" %}{% endif %}
|
|
||||||
<li><a data-target="#item{{ forloop.index }}" data-toggle="collapse" data-parent="#stacked-menu"{% if treeString contains pageURLString %}{% assign foundBranch="true"%} aria-expanded="true"{% else %} class="collapsed" aria-expanded="false"{% endif %}>{{ item.sectiontitle }}<span class="caret arrow"></span></a>
|
|
||||||
<ul class="nav collapse{% if foundBranch == "true" %} in{% endif %}" id="#item{{ forloop.index }}" aria-expanded="{% if foundBranch == "true" %}true{% else %}false{% endif %}">{% assign tree = item.section %}{% include tree.html %}</ul>
|
|
||||||
</li>
|
|
||||||
{% else %}
|
|
||||||
<li><a href="{{ item.path }}"{% if item.path == page.url and item.nosync != true %} class="active currentPage"{% endif %}>{{ item.title }}</a></li>
|
|
||||||
{% endif %}{% endif %}{% endfor %}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{% assign topicFound="false" %}
|
|
||||||
{% for section in site.data.toc.horizontalnav %}
|
|
||||||
{% assign activeCSS = "" %}
|
|
||||||
{% if topicFound=="false" %}
|
|
||||||
{% if section.node == "glossary" %}
|
|
||||||
{% capture leftnav %}{% for entry in site.data.glossary %}
|
|
||||||
<li><a href="/glossary/?term={{ entry[0] }}">{{ entry[0] }}</a></li>{% endfor %}{% endcapture %}
|
|
||||||
{% if page.url == "/glossary/" %}
|
|
||||||
{% assign topicFound = "true" %}
|
|
||||||
{% capture leftnav %}<li><a href="/glossary/" class="active currentPage">Glossary Home</a></li>{{ leftnav }}{% endcapture %}
|
|
||||||
{% endif %}
|
|
||||||
{% else %}
|
|
||||||
{% assign tree = site.data.toc[section.node] %}
|
|
||||||
{% capture thisSection %}{% include tree.html %}{% endcapture %}
|
|
||||||
{% if section.path == page.url or thisSection contains "active currentPage" %}
|
|
||||||
{% capture leftnav %}{{ thisSection }}{% endcapture %}
|
|
||||||
{% capture activeCSS %} class="active"{% endcapture %}
|
|
||||||
{% assign topicFound="true" %}
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
<li id="{{ section.node }}"{{ activeCSS }}><a href="{{ section.path }}">{{ section.title }}</a></li>
|
|
||||||
{% endfor %}
|
|
|
@ -97,7 +97,18 @@
|
||||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
|
||||||
<!-- temp css will be removed -->
|
<!-- temp css will be removed -->
|
||||||
<link rel="stylesheet" href="/css/temp.css">
|
<link rel="stylesheet" href="/css/temp.css">
|
||||||
{% seo %}
|
<!-- SEO stuff -->
|
||||||
|
<title>{{ page.title }} | Docker Documentation</title>
|
||||||
|
<meta property="og:title" content="{{ page.title }}" />
|
||||||
|
<meta property="og:locale" content="en_US" />
|
||||||
|
<meta name="description" content="{{ page.description }}" />
|
||||||
|
<meta property="og:description" content="{{ page.description }}" />
|
||||||
|
<link rel="canonical" href="{{ page.url }}" />
|
||||||
|
<meta property="og:url" content="https://docs.docker.com{{ page.url }}" />
|
||||||
|
<meta property="og:site_name" content="Docker Documentation" />
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{"@context":"http://schema.org","@type":"WebPage","headline":"{{ page.title }}","description":"{{ page.description }}","url":"https://docs.docker.com{{ page.url }}"}</script>
|
||||||
|
<!-- END SEO STUFF -->
|
||||||
{% if page.hide_from_sitemap %}<meta name="robots" content="noindex" />{% endif %}
|
{% if page.hide_from_sitemap %}<meta name="robots" content="noindex" />{% endif %}
|
||||||
<script language="javascript">
|
<script language="javascript">
|
||||||
// Default to assuming this is an archive and hiding some stuff
|
// Default to assuming this is an archive and hiding some stuff
|
||||||
|
@ -296,20 +307,24 @@
|
||||||
<script src="/js/jquery.js"></script>
|
<script src="/js/jquery.js"></script>
|
||||||
<script src="/js/bootstrap.min.js"></script>
|
<script src="/js/bootstrap.min.js"></script>
|
||||||
<!-- Always include the archive.js, but it doesn't do much unless we are an archive -->
|
<!-- Always include the archive.js, but it doesn't do much unless we are an archive -->
|
||||||
|
<script language="javascript">
|
||||||
|
// Default to assuming this is an archive and hiding some stuff
|
||||||
|
// See js/archive.js and js/docs.js for logic relating to this
|
||||||
|
var isArchive = true;
|
||||||
|
var dockerVersion = 'v{{ site.docker_ce_stable_version }}';
|
||||||
|
var pageURL = '{{ page.url }}';
|
||||||
|
</script>
|
||||||
<script src="/js/archive.js"></script>
|
<script src="/js/archive.js"></script>
|
||||||
<script src="/js/stickyfill.min.js"></script>
|
<script src="/js/stickyfill.min.js"></script>
|
||||||
|
<script defer src="/js/metadata.js"></script>
|
||||||
|
<script src="/js/glossary.js"></script>
|
||||||
|
<script src="/js/collections_tocs.js"></script>
|
||||||
<script defer src="/js/docs.js"></script>
|
<script defer src="/js/docs.js"></script>
|
||||||
|
<script defer src="/js/toc.js"></script>
|
||||||
<script language="javascript">
|
<script language="javascript">
|
||||||
jQuery(document).ready(function(){
|
jQuery(document).ready(function(){
|
||||||
$.getJSON( "/metadata.txt", function( data ) {
|
|
||||||
metadata = data;
|
|
||||||
hookupTOCEvents();
|
hookupTOCEvents();
|
||||||
$.getJSON( "/glossary.txt", function( data ) {
|
|
||||||
glossary = data;
|
|
||||||
renderTagsPage();
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ prior version of Docker was shipped.
|
||||||
## {{ archive.name }} (current)
|
## {{ archive.name }} (current)
|
||||||
|
|
||||||
Docs for {{ archive.name }} _(current)_ are accessible at [**https://docs.docker.com/**](/), or
|
Docs for {{ archive.name }} _(current)_ are accessible at [**https://docs.docker.com/**](/), or
|
||||||
run:
|
to view the docs offline on your local machine, run:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker run -ti -p 4000:4000 {{ archive.image }}
|
docker run -ti -p 4000:4000 {{ archive.image }}
|
||||||
|
@ -24,7 +24,7 @@ docker run -ti -p 4000:4000 {{ archive.image }}
|
||||||
|
|
||||||
## {{ archive.name }}
|
## {{ archive.name }}
|
||||||
|
|
||||||
Docs for {{ archive.name }} are accessible at [**https://docs.docker.com/{{ archive.name }}/**](/{{ archive.name }}/), or
|
Docs for {{ archive.name }} are accessible at [**https://docs.docker.com/{{ archive.name }}/**](/{{ archive.name }}/), or to view the docs offline on your local machine,
|
||||||
run:
|
run:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -44,7 +44,7 @@ runtime, all travel together.
|
||||||
|
|
||||||
These portable images are defined by something called a `Dockerfile`.
|
These portable images are defined by something called a `Dockerfile`.
|
||||||
|
|
||||||
## Define a container with a `Dockerfile`
|
## Define a container with `Dockerfile`
|
||||||
|
|
||||||
`Dockerfile` will define what goes on in the environment inside your
|
`Dockerfile` will define what goes on in the environment inside your
|
||||||
container. Access to resources like networking interfaces and disk drives is
|
container. Access to resources like networking interfaces and disk drives is
|
||||||
|
@ -202,8 +202,7 @@ mapped port 80 of that container to 4000, making the correct URL
|
||||||
`http://localhost:4000`.
|
`http://localhost:4000`.
|
||||||
|
|
||||||
Go to that URL in a web browser to see the display content served up on a
|
Go to that URL in a web browser to see the display content served up on a
|
||||||
web page, including "Hello World" text, the container ID, and the Redis error
|
web page.
|
||||||
message.
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
10
index.md
10
index.md
|
@ -13,9 +13,9 @@ notags: true
|
||||||
|
|
||||||
## Get started with Docker
|
## Get started with Docker
|
||||||
|
|
||||||
Try our new multi-part walkthrough that goes from writing your first app,
|
Try our new multi-part walkthrough that covers writing your first app,
|
||||||
data storage, networking, and swarms, ending with your app running on
|
data storage, networking, and swarms, and ends with your app running on
|
||||||
production servers in the cloud. Total reading time is less than an hour!
|
production servers in the cloud. Total reading time is less than an hour.
|
||||||
|
|
||||||
[Get started with Docker](/get-started/){: class="button outline-btn"}
|
[Get started with Docker](/get-started/){: class="button outline-btn"}
|
||||||
|
|
||||||
|
@ -26,8 +26,8 @@ production servers in the cloud. Total reading time is less than an hour!
|
||||||
|
|
||||||
Run your solution in production with Docker Enterprise Edition and you'll get a
|
Run your solution in production with Docker Enterprise Edition and you'll get a
|
||||||
management dashboard, security scanning, LDAP integration, content signing,
|
management dashboard, security scanning, LDAP integration, content signing,
|
||||||
multi-cloud support, and more. Click below to test
|
multi-cloud support, and more. Click below to test-drive a running instance of
|
||||||
drive a running instance of Docker EE, without installing anything.
|
Docker EE without installing anything.
|
||||||
|
|
||||||
[Try Docker Enterprise Edition](https://dockertrial.com){: class="button outline-btn" onclick="ga('send', 'event', 'EE Trial Referral', 'Front Page', 'Click');"}
|
[Try Docker Enterprise Edition](https://dockertrial.com){: class="button outline-btn" onclick="ga('send', 'event', 'EE Trial Referral', 'Front Page', 'Click');"}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
layout: null
|
||||||
|
---
|
||||||
|
var collectionsTOC = new Array()
|
||||||
|
collectionsTOC["library"] = [
|
||||||
|
{% for page in site.samples %}
|
||||||
|
{
|
||||||
|
"path":{{ page.url | jsonify }},
|
||||||
|
"title":{{ page.title | jsonify }}
|
||||||
|
}{% unless forloop.last%},{% endunless %}
|
||||||
|
{% endfor %}
|
||||||
|
]
|
155
js/docs.js
155
js/docs.js
|
@ -18,10 +18,151 @@ if (current[0]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addMyClass(classToAdd) {
|
||||||
|
var classString = this.className; // returns the string of all the classes for myDiv
|
||||||
|
// Adds the class "main__section" to the string (notice the leading space)
|
||||||
|
this.className = newClass; // sets className to the new string
|
||||||
|
}
|
||||||
|
|
||||||
|
function navClicked(sourceLink)
|
||||||
|
{
|
||||||
|
var classString = document.getElementById('#item' + sourceLink).className;
|
||||||
|
if (classString.indexOf(' in') > -1)
|
||||||
|
{
|
||||||
|
//collapse
|
||||||
|
var newClass = classString.replace(' in','');
|
||||||
|
document.getElementById('#item' + sourceLink).className = newClass;
|
||||||
|
} else {
|
||||||
|
//expand
|
||||||
|
var newClass = classString.concat(' in');
|
||||||
|
document.getElementById('#item' + sourceLink).className = newClass;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var outputHorzTabs = new Array();
|
||||||
|
var outputLetNav = new Array();
|
||||||
|
var totalTopics = 0;
|
||||||
|
var currentSection;
|
||||||
|
var sectionToHighlight;
|
||||||
|
function findMyTopic(tree)
|
||||||
|
{
|
||||||
|
function processBranch(branch)
|
||||||
|
{
|
||||||
|
for (var k=0;k<branch.length;k++)
|
||||||
|
{
|
||||||
|
if (branch[k].section) {
|
||||||
|
processBranch(branch[k].section);
|
||||||
|
} else {
|
||||||
|
if (branch[k].path == pageURL && !branch[k].nosync)
|
||||||
|
{
|
||||||
|
console.log(branch[k].path + ' was == ' + pageURL)
|
||||||
|
thisIsIt = true;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
console.log(branch[k].path + ' was != ' + pageURL)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var thisIsIt = false;
|
||||||
|
processBranch(tree)
|
||||||
|
return thisIsIt;
|
||||||
|
}
|
||||||
|
function walkTree(tree)
|
||||||
|
{
|
||||||
|
for (var j=0;j<tree.length;j++)
|
||||||
|
{
|
||||||
|
totalTopics++;
|
||||||
|
if (tree[j].section)
|
||||||
|
{
|
||||||
|
var sectionHasPath = findMyTopic(tree[j].section);
|
||||||
|
outputLetNav.push('<li><a onclick="navClicked(' + totalTopics +')" data-target="#item' + totalTopics +'" data-toggle="collapse" data-parent="#stacked-menu"')
|
||||||
|
if (sectionHasPath)
|
||||||
|
{
|
||||||
|
outputLetNav.push('aria-expanded="true"')
|
||||||
|
} else {
|
||||||
|
outputLetNav.push('class="collapsed" aria-expanded="false"')
|
||||||
|
}
|
||||||
|
outputLetNav.push('>' + tree[j].sectiontitle + '<span class="caret arrow"></span></a>');
|
||||||
|
outputLetNav.push('<ul class="nav collapse');
|
||||||
|
if (sectionHasPath) outputLetNav.push(' in');
|
||||||
|
outputLetNav.push('" id="#item' + totalTopics + '" aria-expanded="');
|
||||||
|
if (sectionHasPath)
|
||||||
|
{
|
||||||
|
outputLetNav.push('true');
|
||||||
|
} else {
|
||||||
|
outputLetNav.push('false');
|
||||||
|
}
|
||||||
|
outputLetNav.push('">');
|
||||||
|
var subTree = tree[j].section;
|
||||||
|
walkTree(subTree);
|
||||||
|
outputLetNav.push('</ul></li>');
|
||||||
|
} else if (tree[j].generateTOC) {
|
||||||
|
// auto-generate a TOC from a collection
|
||||||
|
walkTree(collectionsTOC[tree[j].generateTOC])
|
||||||
|
} else {
|
||||||
|
// just a regular old topic; this is a leaf, not a branch; render a link!
|
||||||
|
outputLetNav.push('<li><a href="' + tree[j].path + '"')
|
||||||
|
if (tree[j].path == pageURL && !tree[j].nosync)
|
||||||
|
{
|
||||||
|
sectionToHighlight = currentSection;
|
||||||
|
outputLetNav.push('class="active currentPage"')
|
||||||
|
}
|
||||||
|
outputLetNav.push('>'+tree[j].title+'</a></li>')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function renderNav(docstoc) {
|
||||||
|
for (i=0;i<docstoc.horizontalnav.length;i++)
|
||||||
|
{
|
||||||
|
if (docstoc.horizontalnav[i].node != "glossary")
|
||||||
|
{
|
||||||
|
currentSection = docstoc.horizontalnav[i].node;
|
||||||
|
// build vertical nav
|
||||||
|
var itsHere = findMyTopic(docstoc[docstoc.horizontalnav[i].node]);
|
||||||
|
if (itsHere || docstoc.horizontalnav[i].path == pageURL)
|
||||||
|
{
|
||||||
|
walkTree(docstoc[docstoc.horizontalnav[i].node]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// build horizontal nav
|
||||||
|
outputHorzTabs.push('<li id="' + docstoc.horizontalnav[i].node + '"');
|
||||||
|
if (docstoc.horizontalnav[i].path==pageURL || docstoc.horizontalnav[i].node==sectionToHighlight)
|
||||||
|
{
|
||||||
|
outputHorzTabs.push(' class="active"');
|
||||||
|
}
|
||||||
|
outputHorzTabs.push('><a href="'+docstoc.horizontalnav[i].path+'">'+docstoc.horizontalnav[i].title+'</a></li>\n');
|
||||||
|
}
|
||||||
|
if (outputLetNav.length==0)
|
||||||
|
{
|
||||||
|
// didn't find the current topic in the standard TOC; maybe it's a collection;
|
||||||
|
for (var key in collectionsTOC)
|
||||||
|
{
|
||||||
|
var itsHere = findMyTopic(collectionsTOC[key]);
|
||||||
|
if (itsHere) {
|
||||||
|
walkTree(collectionsTOC[key]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// either glossary was true or no left nav has been built; default to glossary
|
||||||
|
// show pages tagged with term and highlight term in left nav if applicable
|
||||||
|
renderTagsPage()
|
||||||
|
for (var i=0;i<glossary.length;i++)
|
||||||
|
{
|
||||||
|
var highlightGloss = '';
|
||||||
|
if (tagToLookup) highlightGloss = (glossary[i].term.toLowerCase()==tagToLookup.toLowerCase()) ? ' class="active currentPage"' : '';
|
||||||
|
outputLetNav.push('<li><a'+highlightGloss+' href="/glossary/?term=' + glossary[i].term + '">'+glossary[i].term+'</a></li>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
document.getElementById('jsTOCHorizontal').innerHTML = outputHorzTabs.join('');
|
||||||
|
document.getElementById('jsTOCLeftNav').innerHTML = outputLetNav.join('');
|
||||||
|
}
|
||||||
|
|
||||||
function highlightRightNav(heading)
|
function highlightRightNav(heading)
|
||||||
{
|
{
|
||||||
if (document.location.pathname.indexOf("/glossary/")<0){
|
if (document.location.pathname.indexOf("/glossary/")<0){
|
||||||
console.log("highlightRightNav called on",document.location.pathname)
|
//console.log("highlightRightNav called on",document.location.pathname)
|
||||||
if (heading == "title")
|
if (heading == "title")
|
||||||
{
|
{
|
||||||
history.replaceState({},"Top of page on " + document.location.pathname,document.location.protocol +"//"+ document.location.hostname + (location.port ? ':'+location.port: '') + document.location.pathname);
|
history.replaceState({},"Top of page on " + document.location.pathname,document.location.protocol +"//"+ document.location.hostname + (location.port ? ':'+location.port: '') + document.location.pathname);
|
||||||
|
@ -295,22 +436,22 @@ window.onload = function() {
|
||||||
|
|
||||||
// isArchive is set by logic in archive.js
|
// isArchive is set by logic in archive.js
|
||||||
if ( isArchive == false ) {
|
if ( isArchive == false ) {
|
||||||
console.log("Showing content that should only be in the current version.");
|
//console.log("Showing content that should only be in the current version.");
|
||||||
// Hide elements that are not appropriate for archives
|
// Hide elements that are not appropriate for archives
|
||||||
// PollDaddy
|
// PollDaddy
|
||||||
$('#ratings-div').css("visibility","visible");
|
$('#ratings-div').css("visibility","visible");
|
||||||
console.log("Ratings widget shown.");
|
//console.log("Ratings widget shown.");
|
||||||
// Archive drop-down
|
// Archive drop-down
|
||||||
$('.ctrl-right .btn-group').css("visibility","visible");
|
$('.ctrl-right .btn-group').css("visibility","visible");
|
||||||
console.log("Archive widget shown.");
|
//console.log("Archive widget shown.");
|
||||||
// Swarch
|
// Swarch
|
||||||
$('.search-form').css("visibility","visible");
|
$('.search-form').css("visibility","visible");
|
||||||
console.log("Search widget shown.");
|
//console.log("Search widget shown.");
|
||||||
// Page edit link
|
// Page edit link
|
||||||
$('.feedback-links li').first().css("visibility","visible");
|
$('.feedback-links li').first().css("visibility","visible");
|
||||||
console.log("Page edit link shown.");
|
//console.log("Page edit link shown.");
|
||||||
} else {
|
} else {
|
||||||
console.log("Keeping non-applicable elements hidden.");
|
//console.log("Keeping non-applicable elements hidden.");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
---
|
---
|
||||||
layout: null
|
layout: null
|
||||||
---
|
---
|
||||||
{
|
var glossary = [
|
||||||
"terms":[
|
|
||||||
{% for entry in site.data.glossary %}
|
{% for entry in site.data.glossary %}
|
||||||
{
|
{
|
||||||
"term": {{ entry[0] | jsonify }},
|
"term": {{ entry[0] | jsonify }},
|
||||||
|
@ -10,4 +9,3 @@ layout: null
|
||||||
}{% unless forloop.last %},{% endunless %}
|
}{% unless forloop.last %},{% endunless %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
]
|
]
|
||||||
}
|
|
39
js/menu.js
39
js/menu.js
|
@ -101,10 +101,10 @@ function hookupTOCEvents()
|
||||||
loadPage("/search/?q=" + $("#st-search-input").val());
|
loadPage("/search/?q=" + $("#st-search-input").val());
|
||||||
} else {
|
} else {
|
||||||
// an autocomplete result is selected
|
// an autocomplete result is selected
|
||||||
loadPage(metadata.pages[displayingAutcompleteResults[autoCompleteShowingID]].url);
|
loadPage(pages[displayingAutcompleteResults[autoCompleteShowingID]].url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//console.log('autoCompleteShowingID:',autoCompleteShowingID,'displayingAutcompleteResults[id]:',displayingAutcompleteResults[autoCompleteShowingID],'metadata.pages[id].url:',metadata.pages[displayingAutcompleteResults[autoCompleteShowingID]].url);
|
//console.log('autoCompleteShowingID:',autoCompleteShowingID,'displayingAutcompleteResults[id]:',displayingAutcompleteResults[autoCompleteShowingID],'pages[id].url:',pages[displayingAutcompleteResults[autoCompleteShowingID]].url);
|
||||||
}
|
}
|
||||||
var searchVal = $("#st-search-input").val();
|
var searchVal = $("#st-search-input").val();
|
||||||
if (lastSearch != searchVal)
|
if (lastSearch != searchVal)
|
||||||
|
@ -115,10 +115,10 @@ function hookupTOCEvents()
|
||||||
//console.log("input changed: ",$("#st-search-input").val());
|
//console.log("input changed: ",$("#st-search-input").val());
|
||||||
|
|
||||||
if (searchVal.length > 2) {
|
if (searchVal.length > 2) {
|
||||||
for (i=0;i<metadata.pages.length;i++)
|
for (i=0;i<pages.length;i++)
|
||||||
{
|
{
|
||||||
// search url, description, title, and keywords for search input
|
// search url, description, title, and keywords for search input
|
||||||
var thisPage = metadata.pages[i];
|
var thisPage = pages[i];
|
||||||
var matchesTitle=0, matchesDescription=0, matchesURL=0, matchesKeywords=0;
|
var matchesTitle=0, matchesDescription=0, matchesURL=0, matchesKeywords=0;
|
||||||
var matchesTitle = matches(String(thisPage.title).toUpperCase(),uppercaseSearchVal);
|
var matchesTitle = matches(String(thisPage.title).toUpperCase(),uppercaseSearchVal);
|
||||||
//if (titleMatches > 0) console.log(uppercaseSearchVal,'matches',thisPage.title,titleMatches,'times');
|
//if (titleMatches > 0) console.log(uppercaseSearchVal,'matches',thisPage.title,titleMatches,'times');
|
||||||
|
@ -148,29 +148,29 @@ function hookupTOCEvents()
|
||||||
{
|
{
|
||||||
//console.log(i, "of", autoCompleteResultLimit, "is underway");
|
//console.log(i, "of", autoCompleteResultLimit, "is underway");
|
||||||
displayingAutcompleteResults.push(results[i].topic); //log results to global array
|
displayingAutcompleteResults.push(results[i].topic); //log results to global array
|
||||||
resultsOutput.push("<div class='autoCompleteResult' id='autoCompleteResult" + i + "' onclick='loadPage(\"" + metadata.pages[results[i].topic].url + "\")'>");
|
resultsOutput.push("<div class='autoCompleteResult' id='autoCompleteResult" + i + "' onclick='loadPage(\"" + pages[results[i].topic].url + "\")'>");
|
||||||
resultsOutput.push("<ul class='autocompleteList'>");
|
resultsOutput.push("<ul class='autocompleteList'>");
|
||||||
resultsOutput.push("<li id='autoTitle" + i + "' class='autocompleteTitle'>")
|
resultsOutput.push("<li id='autoTitle" + i + "' class='autocompleteTitle'>")
|
||||||
resultsOutput.push("<a href=" + metadata.pages[results[i].topic].url + ">" + highlightMe(metadata.pages[results[i].topic].title,searchVal) + "</a>");
|
resultsOutput.push("<a href=" + pages[results[i].topic].url + ">" + highlightMe(pages[results[i].topic].title,searchVal) + "</a>");
|
||||||
resultsOutput.push("</li>");
|
resultsOutput.push("</li>");
|
||||||
resultsOutput.push("<li id='autoUrl" + i + "' class='autocompleteUrl'>")
|
resultsOutput.push("<li id='autoUrl" + i + "' class='autocompleteUrl'>")
|
||||||
resultsOutput.push(highlightMe(metadata.pages[results[i].topic].url,searchVal));
|
resultsOutput.push(highlightMe(pages[results[i].topic].url,searchVal));
|
||||||
resultsOutput.push("</li>");
|
resultsOutput.push("</li>");
|
||||||
/*
|
/*
|
||||||
resultsOutput.push("<li id='autoBreadcrumb" + i + "' class='autocompleteBreadcrumb'>")
|
resultsOutput.push("<li id='autoBreadcrumb" + i + "' class='autocompleteBreadcrumb'>")
|
||||||
resultsOutput.push("Breadcrumb: " + breadcrumbString(metadata.pages[results[i]].url));
|
resultsOutput.push("Breadcrumb: " + breadcrumbString(pages[results[i]].url));
|
||||||
resultsOutput.push("</li>");
|
resultsOutput.push("</li>");
|
||||||
*/
|
*/
|
||||||
if (metadata.pages[results[i].topic].keywords)
|
if (pages[results[i].topic].keywords)
|
||||||
{
|
{
|
||||||
resultsOutput.push("<li id='autoKeywords" + i + "' class='autocompleteKeywords'>")
|
resultsOutput.push("<li id='autoKeywords" + i + "' class='autocompleteKeywords'>")
|
||||||
resultsOutput.push("<b>Keywords</b>: <i>" + highlightMe(metadata.pages[results[i].topic].keywords,searchVal) + "</i>");
|
resultsOutput.push("<b>Keywords</b>: <i>" + highlightMe(pages[results[i].topic].keywords,searchVal) + "</i>");
|
||||||
resultsOutput.push("</li>");
|
resultsOutput.push("</li>");
|
||||||
}
|
}
|
||||||
if (metadata.pages[results[i].topic].description)
|
if (pages[results[i].topic].description)
|
||||||
{
|
{
|
||||||
resultsOutput.push("<li id='autoDescription" + i + "' class='autocompleteDescription'>")
|
resultsOutput.push("<li id='autoDescription" + i + "' class='autocompleteDescription'>")
|
||||||
resultsOutput.push("<b>Description</b>: " + highlightMe(metadata.pages[results[i].topic].description,searchVal));
|
resultsOutput.push("<b>Description</b>: " + highlightMe(pages[results[i].topic].description,searchVal));
|
||||||
resultsOutput.push("</li>");
|
resultsOutput.push("</li>");
|
||||||
}
|
}
|
||||||
resultsOutput.push("</ul>");
|
resultsOutput.push("</ul>");
|
||||||
|
@ -209,9 +209,9 @@ function queryString()
|
||||||
function renderTopicsByTagTable(tagToLookup,divID)
|
function renderTopicsByTagTable(tagToLookup,divID)
|
||||||
{
|
{
|
||||||
var matchingPages = new Array();
|
var matchingPages = new Array();
|
||||||
for (i=0;i<metadata.pages.length;i++)
|
for (i=0;i<pages.length;i++)
|
||||||
{
|
{
|
||||||
thisPage = metadata.pages[i];
|
thisPage = pages[i];
|
||||||
if (thisPage.keywords)
|
if (thisPage.keywords)
|
||||||
{
|
{
|
||||||
var keywordArray = thisPage.keywords.toString().split(",");
|
var keywordArray = thisPage.keywords.toString().split(",");
|
||||||
|
@ -230,18 +230,19 @@ function renderTopicsByTagTable(tagToLookup,divID)
|
||||||
pagesOutput.push("<h2>Pages tagged with: " + tagToLookup + "</h2>");
|
pagesOutput.push("<h2>Pages tagged with: " + tagToLookup + "</h2>");
|
||||||
pagesOutput.push("<table><thead><tr><td>Page</td><td>Description</td></tr></thead><tbody>");
|
pagesOutput.push("<table><thead><tr><td>Page</td><td>Description</td></tr></thead><tbody>");
|
||||||
for(i=0;i<matchingPages.length;i++) {
|
for(i=0;i<matchingPages.length;i++) {
|
||||||
thisPage = metadata.pages[matchingPages[i]];
|
thisPage = pages[matchingPages[i]];
|
||||||
pagesOutput.push("<tr><td><a href='" + thisPage.url + "'>" + thisPage.title + "</a></td><td>" + thisPage.description + "</td></tr>");
|
pagesOutput.push("<tr><td><a href='" + thisPage.url + "'>" + thisPage.title + "</a></td><td>" + thisPage.description + "</td></tr>");
|
||||||
}
|
}
|
||||||
pagesOutput.push("</tbody></table>");
|
pagesOutput.push("</tbody></table>");
|
||||||
}
|
}
|
||||||
$("#" + divID).html(pagesOutput.join(""));
|
$("#" + divID).html(pagesOutput.join(""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var tagToLookup;
|
||||||
function renderTagsPage()
|
function renderTagsPage()
|
||||||
{
|
{
|
||||||
if(window.location.pathname.indexOf("/glossary/")>-1 || window.location.pathname.indexOf("/search/")>-1)
|
if(window.location.pathname.indexOf("/glossary/")>-1 || window.location.pathname.indexOf("/search/")>-1)
|
||||||
{
|
{
|
||||||
var tagToLookup;
|
|
||||||
if (window.location.pathname.indexOf("/glossary/")>-1)
|
if (window.location.pathname.indexOf("/glossary/")>-1)
|
||||||
{
|
{
|
||||||
// Get ?term=<value>
|
// Get ?term=<value>
|
||||||
|
@ -254,11 +255,11 @@ function renderTagsPage()
|
||||||
tagToLookup = decodeURI(queryString().q);
|
tagToLookup = decodeURI(queryString().q);
|
||||||
}
|
}
|
||||||
// Get the term and definition
|
// Get the term and definition
|
||||||
for (i=0;i<glossary.terms.length;i++)
|
for (i=0;i<glossary.length;i++)
|
||||||
{
|
{
|
||||||
if (glossary.terms[i].term.toLowerCase()==tagToLookup.toLowerCase())
|
if (glossary[i].term.toLowerCase()==tagToLookup.toLowerCase())
|
||||||
{
|
{
|
||||||
var glossaryOutput = glossary.terms[i].def;
|
var glossaryOutput = glossary[i].def;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (glossaryOutput) {
|
if (glossaryOutput) {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
---
|
---
|
||||||
layout: null
|
layout: null
|
||||||
---
|
---
|
||||||
{% assign firstPage = "yes" %}{
|
var pages = [{% assign firstPage = "yes" %}
|
||||||
"pages":[{% for page in site.pages %}{% if page.title and page.hide_from_sitemap != true %}{% if firstPage == "no" %},{% else %}{% assign firstPage = "no" %}{% endif %}
|
{% for page in site.pages %}{% if page.title and page.hide_from_sitemap != true %}{% if firstPage == "no" %},{% else %}{% assign firstPage = "no" %}{% endif %}
|
||||||
{
|
{
|
||||||
"url":{{ page.url | jsonify }},
|
"url":{{ page.url | jsonify }},
|
||||||
"title":{{ page.title | jsonify }},
|
"title":{{ page.title | jsonify }},
|
||||||
|
@ -17,4 +17,4 @@ layout: null
|
||||||
"description":{{ page.description | strip | jsonify }},
|
"description":{{ page.description | strip | jsonify }},
|
||||||
"keywords":{{ page.keywords | jsonify }}
|
"keywords":{{ page.keywords | jsonify }}
|
||||||
}
|
}
|
||||||
{% endfor %}]}
|
{% endfor %}]
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
layout: null
|
||||||
|
---
|
||||||
|
var docstoc = {{ site.data.toc | jsonify }}
|
||||||
|
renderNav(docstoc);
|
24
manuals.md
24
manuals.md
|
@ -31,24 +31,24 @@ Digital Ocean, Packet, SoftLayer, or Bring Your Own Cloud.
|
||||||
|
|
||||||
Free downloadables that help your device use Docker containers.
|
Free downloadables that help your device use Docker containers.
|
||||||
|
|
||||||
| Tool | Description |
|
| Tool | Description |
|
||||||
| ---- | ----------- |
|
|:------------------------------------------|:-------------------------------------------------------------------------------------------------------|
|
||||||
| [Docker Compose](/compose/overview/) | Enables you to define, build, and run multi-container applications |
|
| [Docker Compose](/compose/overview/) | Enables you to define, build, and run multi-container applications |
|
||||||
| [Docker Machine](/machine/overview/) | Enables you to provision and manage Dockerized hosts |
|
| [Docker Machine](/machine/overview/) | Enables you to provision and manage Dockerized hosts |
|
||||||
| [Docker Notary](/notary/getting_started/) | Allows the signing of container images to enable Docker Content Trust |
|
| [Docker Notary](/notary/getting_started/) | Allows the signing of container images to enable Docker Content Trust |
|
||||||
| [Docker Registry](/registry/) | The software that powers Docker Hub and Docker Store, Registry stores and distributes container images |
|
| [Docker Registry](/registry/) | The software that powers Docker Hub and Docker Store, Registry stores and distributes container images |
|
||||||
|
|
||||||
## Products
|
## Products
|
||||||
|
|
||||||
Commercial Docker products that turn your container-based solution into a
|
Commercial Docker products that turn your container-based solution into a
|
||||||
production-ready application.
|
production-ready application.
|
||||||
|
|
||||||
| Product | Description |
|
| Product | Description |
|
||||||
| ------- | ----------- |
|
|:-------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------|
|
||||||
| [Docker Cloud](/docker-cloud/) | Manages multi-container applications and host resources running on a cloud provider (such as Amazon Web Services) |
|
| [Docker Cloud](/docker-cloud/) | Manages multi-container applications and host resources running on a cloud provider (such as Amazon Web Services) |
|
||||||
| [Universal Control Plane (UCP)](/datacenter/ucp/2.2/guides/) | Manages your Docker swarm on-premise, or on the cloud |
|
| [Universal Control Plane (UCP)](/datacenter/ucp/2.2/guides/) | Manages your Docker swarm on-premise, or on the cloud |
|
||||||
| [Docker Trusted Registry (DTR)](/datacenter/dtr/2.3/guides/) | Securely stores and scans your Docker images |
|
| [Docker Trusted Registry (DTR)](/datacenter/dtr/2.3/guides/) | Securely stores and scans your Docker images |
|
||||||
| [Docker Store](/docker-store/) | Public, Docker-hosted registry that distributes free and paid images from various publishers |
|
| [Docker Store](/docker-store/) | Public, Docker-hosted registry that distributes free and paid images from various publishers |
|
||||||
|
|
||||||
## Superseded products and tools
|
## Superseded products and tools
|
||||||
|
|
||||||
|
|
23
sitemap.xml
23
sitemap.xml
|
@ -1,23 +0,0 @@
|
||||||
---
|
|
||||||
layout: null
|
|
||||||
---
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<urlset
|
|
||||||
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
|
||||||
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
|
||||||
|
|
||||||
<url>
|
|
||||||
<loc>https://docs.docker.com/</loc>
|
|
||||||
<lastmod>{{ site.time | date_to_xmlschema }}</lastmod>
|
|
||||||
</url>
|
|
||||||
{% for page in site.samples %}<url>
|
|
||||||
<loc>https://docs.docker.com{{ page.url }}</loc>
|
|
||||||
<lastmod>{% if page.date %}{{ page.date | date_to_xmlschema }}{% else %}{{ site.time | date_to_xmlschema }}{% endif %}</lastmod>
|
|
||||||
</url>{% endfor %}
|
|
||||||
{% for page in site.pages %}{% unless page.hide_from_sitemap %}<url>
|
|
||||||
<loc>https://docs.docker.com{{ page.url }}</loc>
|
|
||||||
<lastmod>{% if page.date %}{{ page.date | date_to_xmlschema }}{% else %}{{ site.time | date_to_xmlschema }}{% endif %}</lastmod>
|
|
||||||
</url>{% endunless %}{% endfor %}
|
|
||||||
</urlset>
|
|
Loading…
Reference in New Issue