mirror of https://github.com/docker/docs.git
Removing merge detritus
This commit is contained in:
parent
843b052401
commit
99bab305bd
|
@ -1,10 +0,0 @@
|
||||||
[submodule "adminserver/ui/private-deps/dux"]
|
|
||||||
path = adminserver/ui/private-deps/dux
|
|
||||||
url = git@github.com:docker/docker-ux.git
|
|
||||||
[submodule "adminserver/ui/swagger-ui"]
|
|
||||||
path = adminserver/ui/swagger-ui
|
|
||||||
url = https://github.com/wordnik/swagger-ui.git
|
|
||||||
branch = dux-redux
|
|
||||||
[submodule "adminserver/ui/private-deps/dtr-js-sdk"]
|
|
||||||
path = adminserver/ui/private-deps/dtr-js-sdk
|
|
||||||
url = git@github.com:docker/dtr-js-sdk.git
|
|
10
Dockerfile
10
Dockerfile
|
@ -1,10 +0,0 @@
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
# because both the 2 dir's are going into the root
|
|
||||||
env PROJECT=
|
|
||||||
|
|
||||||
# To get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
#RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
39
Makefile
39
Makefile
|
@ -1,39 +0,0 @@
|
||||||
.PHONY: all default docs docs-build docs-shell shell test
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
DOCKER_IMAGE := docker$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
|
||||||
DOCKER_DOCS_IMAGE := docs-base$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
|
||||||
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)"
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
22
README.md
22
README.md
|
@ -1,12 +1,14 @@
|
||||||
|
|
||||||
|
|
||||||
# This repo is for preview/dev purposes only
|
# This repo is for preview/dev purposes only
|
||||||
|
|
||||||
The docs team is in the process of migrating to this repo. During this time we're also
|
The docs team is in the process of migrating to this repo. During this time we're also
|
||||||
converting from a Hugo-based doc system to a Jekyll-based doc system. That means there
|
converting from a Hugo-based doc system to a Jekyll-based doc system. That means there
|
||||||
are lots of content errors and so forth at the preview URL. We're on it.
|
are lots of content errors and so forth at the preview URL. We're on it.
|
||||||
|
|
||||||
While this repo is not the source of truth, it's important to us that it be viewable
|
While this repo is not the source of truth, it's important to us that it be viewable
|
||||||
so contributors can see what we're doing, and so that they can migrate open pull requests
|
so contributors can see what we're doing, and so that they can migrate open pull requests
|
||||||
from other repos such as `docker/docker` that make doc changes, into this repo.
|
from other repos such as `docker/docker` that make doc changes, into this repo.
|
||||||
|
|
||||||
## Timeline of migration
|
## Timeline of migration
|
||||||
|
|
||||||
|
@ -49,6 +51,20 @@ Feel free to link to `../foo.md` so that the docs are readable in GitHub, but ke
|
||||||
`{% such as this %}` will render in raw text and not be processed. In general it's best to assume the docs are being read
|
`{% such as this %}` will render in raw text and not be processed. In general it's best to assume the docs are being read
|
||||||
directly on docs.docker.com.
|
directly on docs.docker.com.
|
||||||
|
|
||||||
|
## Style guide
|
||||||
|
|
||||||
|
If you have questions about how to write for Docker's documentation, please see
|
||||||
|
the [style guide](https://docs.docker.com/opensource/doc-style/). The style guide provides
|
||||||
|
guidance about grammar, syntax, formatting, styling, language, or tone. If
|
||||||
|
something isn't clear in the guide, please submit an issue to let us know or
|
||||||
|
submit a pull request to help us improve it.
|
||||||
|
|
||||||
|
### Generate the man pages
|
||||||
|
|
||||||
|
For information on generating man pages (short for manual page), see the README.md
|
||||||
|
document in [the man page directory](https://github.com/docker/docker/tree/master/man)
|
||||||
|
in this project.
|
||||||
|
|
||||||
## Copyright and license
|
## Copyright and license
|
||||||
|
|
||||||
Code and documentation copyright 2016 Docker, inc, released under the Apache 2.0 license.
|
Code and documentation copyright 2016 Docker, inc, released under the Apache 2.0 license.
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:hugo-github-linking
|
|
||||||
MAINTAINER Mary Anthony <mary@docker.com> (@moxiegirl)
|
|
||||||
|
|
||||||
RUN svn checkout https://github.com/docker/docker/trunk/docs /docs/content/engine
|
|
||||||
RUN svn checkout https://github.com/docker/compose/trunk/docs /docs/content/compose
|
|
||||||
RUN svn checkout https://github.com/docker/swarm/trunk/docs /docs/content/swarm
|
|
||||||
RUN svn checkout https://github.com/docker/machine/trunk/docs /docs/content/machine
|
|
||||||
RUN svn checkout https://github.com/docker/distribution/trunk/docs /docs/content/registry
|
|
||||||
RUN svn checkout https://github.com/kitematic/kitematic/trunk/docs /docs/content/kitematic
|
|
||||||
RUN svn checkout https://github.com/docker/tutorials/trunk/docs/mac /docs/content/mac
|
|
||||||
RUN svn checkout https://github.com/docker/tutorials/trunk/docs/windows /docs/content/windows
|
|
||||||
RUN svn checkout https://github.com/docker/tutorials/trunk/docs/linux /docs/content/linux
|
|
||||||
RUN svn checkout https://github.com/docker/opensource/trunk/docs /docs/content/opensource
|
|
||||||
|
|
||||||
# To get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
COPY . /docs/content/apidocs/docker-trusted-registry/
|
|
|
@ -1,70 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all binary build cross default docs docs-build docs-shell shell test test-unit test-integration test-integration-cli test-docker-py validate
|
|
||||||
|
|
||||||
# env vars passed through directly to Docker's build scripts
|
|
||||||
# to allow things like `make DOCKER_CLIENTONLY=1 binary` easily
|
|
||||||
# `docs/sources/contributing/devenvironment.md ` and `project/PACKAGERS.md` have some limited documentation of some of these
|
|
||||||
DOCKER_ENVS := \
|
|
||||||
-e BUILDFLAGS \
|
|
||||||
-e DOCKER_CLIENTONLY \
|
|
||||||
-e DOCKER_EXECDRIVER \
|
|
||||||
-e DOCKER_GRAPHDRIVER \
|
|
||||||
-e TESTDIRS \
|
|
||||||
-e TESTFLAGS \
|
|
||||||
-e TIMEOUT
|
|
||||||
# note: we _cannot_ add "-e DOCKER_BUILDTAGS" here because even if it's unset in the shell, that would shadow the "ENV DOCKER_BUILDTAGS" set in our Dockerfile, which is very important for our official builds
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
DOCKER_IMAGE := docker$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
|
||||||
DOCKER_DOCS_IMAGE := docs-base$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
|
||||||
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 \
|
|
||||||
-v $(CURDIR):/docs/content/docker-trusted-registry/ \
|
|
||||||
-e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" \
|
|
||||||
hugo server \
|
|
||||||
--log=true --watch=true \
|
|
||||||
--port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
# ( git remote | grep -v upstream ) || git diff --name-status upstream/release..upstream/docs ./ > ./changed-files
|
|
||||||
# echo "$(GIT_BRANCH)" > GIT_BRANCH
|
|
||||||
# echo "$(AWS_S3_BUCKET)" > AWS_S3_BUCKET
|
|
||||||
# echo "$(GITCOMMIT)" > GITCOMMIT
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
||||||
|
|
||||||
images:
|
|
||||||
$(MAKE) -C assets
|
|
|
@ -1,85 +0,0 @@
|
||||||
---
|
|
||||||
description: Compose README
|
|
||||||
draft: true
|
|
||||||
keywords:
|
|
||||||
- Docker, documentation, manual, guide, reference, api
|
|
||||||
title: Compose README
|
|
||||||
---
|
|
||||||
|
|
||||||
# Contributing to the Docker Compose documentation
|
|
||||||
|
|
||||||
The documentation in this directory is part of the [https://docs.docker.com](https://docs.docker.com) website. Docker uses [the Hugo static generator](http://gohugo.io/overview/introduction/) to convert project Markdown files to a static HTML site.
|
|
||||||
|
|
||||||
You don't need to be a Hugo expert to contribute to the compose documentation. If you are familiar with Markdown, you can modify the content in the `docs` files.
|
|
||||||
|
|
||||||
If you want to add a new file or change the location of the document in the menu, you do need to know a little more.
|
|
||||||
|
|
||||||
## Documentation contributing workflow
|
|
||||||
|
|
||||||
1. Edit a Markdown file in the tree.
|
|
||||||
|
|
||||||
2. Save your changes.
|
|
||||||
|
|
||||||
3. Make sure you are in the `docs` subdirectory.
|
|
||||||
|
|
||||||
4. Build the documentation.
|
|
||||||
|
|
||||||
$ make docs
|
|
||||||
---> ffcf3f6c4e97
|
|
||||||
Removing intermediate container a676414185e8
|
|
||||||
Successfully built ffcf3f6c4e97
|
|
||||||
docker run --rm -it -e AWS_S3_BUCKET -e NOCACHE -p 8000:8000 -e DOCKERHOST "docs-base:test-tooling" hugo server --port=8000 --baseUrl=192.168.59.103 --bind=0.0.0.0
|
|
||||||
ERROR: 2015/06/13 MenuEntry's .Url is deprecated and will be removed in Hugo 0.15. Use .URL instead.
|
|
||||||
0 of 4 drafts rendered
|
|
||||||
0 future content
|
|
||||||
12 pages created
|
|
||||||
0 paginator pages created
|
|
||||||
0 tags created
|
|
||||||
0 categories created
|
|
||||||
in 55 ms
|
|
||||||
Serving pages from /docs/public
|
|
||||||
Web Server is available at http://0.0.0.0:8000/
|
|
||||||
Press Ctrl+C to stop
|
|
||||||
|
|
||||||
5. Open the available server in your browser.
|
|
||||||
|
|
||||||
The documentation server has the complete menu but only the Docker Compose
|
|
||||||
documentation resolves. You can't access the other project docs from this
|
|
||||||
localized build.
|
|
||||||
|
|
||||||
## Tips on Hugo metadata and menu positioning
|
|
||||||
|
|
||||||
The top of each Docker Compose documentation file contains TOML metadata. The metadata is commented out to prevent it from appearing in GitHub.
|
|
||||||
|
|
||||||
<!--[metadata]>
|
|
||||||
+++
|
|
||||||
title = "Extending services in Compose"
|
|
||||||
description = "How to use Docker Compose's extends keyword to share configuration between files and projects"
|
|
||||||
keywords = ["fig, composition, compose, docker, orchestration, documentation, docs"]
|
|
||||||
[menu.main]
|
|
||||||
parent="workw_compose"
|
|
||||||
weight=2
|
|
||||||
+++
|
|
||||||
<![end-metadata]-->
|
|
||||||
|
|
||||||
The metadata alone has this structure:
|
|
||||||
|
|
||||||
+++
|
|
||||||
title = "Extending services in Compose"
|
|
||||||
description = "How to use Docker Compose's extends keyword to share configuration between files and projects"
|
|
||||||
keywords = ["fig, composition, compose, docker, orchestration, documentation, docs"]
|
|
||||||
[menu.main]
|
|
||||||
parent="workw_compose"
|
|
||||||
weight=2
|
|
||||||
+++
|
|
||||||
|
|
||||||
The `[menu.main]` section refers to navigation defined [in the main Docker menu](https://github.com/docker/docs-base/blob/hugo/config.toml). This metadata says *add a menu item called* Extending services in Compose *to the menu with the* `smn_workdw_compose` *identifier*. If you locate the menu in the configuration, you'll find *Create multi-container applications* is the menu title.
|
|
||||||
|
|
||||||
You can move an article in the tree by specifying a new parent. You can shift the location of the item by changing its weight. Higher numbers are heavier and shift the item to the bottom of menu. Low or no numbers shift it up.
|
|
||||||
|
|
||||||
|
|
||||||
## Other key documentation repositories
|
|
||||||
|
|
||||||
The `docker/docs-base` repository contains [the Hugo theme and menu configuration](https://github.com/docker/docs-base). If you open the `Dockerfile` you'll see the `make docs` relies on this as a base image for building the Compose documentation.
|
|
||||||
|
|
||||||
The `docker/docs.docker.com` repository contains [build system for building the Docker documentation site](https://github.com/docker/docs.docker.com). Fork this repository to build the entire documentation site.
|
|
|
@ -1,12 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
ENV PROJECT=cs-engine
|
|
||||||
# to get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
|
@ -1,42 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all default docs docs-build docs-shell shell test
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
|
||||||
DOCKER_DOCS_IMAGE := docker-docs$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) "$(DOCKER_DOCS_IMAGE)"
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
ENV PROJECT=docker-cloud
|
|
||||||
# To get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
||||||
|
|
|
@ -1,206 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright 2014 Docker Cloud, Inc.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all default docs docs-build docs-shell shell test
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
|
||||||
DOCKER_DOCS_IMAGE := docker-docs$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server -v --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP) --watch
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) "$(DOCKER_DOCS_IMAGE)"
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
rm -fr apidocs/docker-cloud
|
|
||||||
rm -fr apidocs/layouts
|
|
||||||
cp -r ../apidocs .
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
|
@ -1,24 +0,0 @@
|
||||||
---
|
|
||||||
draft: true
|
|
||||||
---
|
|
||||||
|
|
||||||
# Docker Cloud Support Documentation, Reference and Articles
|
|
||||||
|
|
||||||
## How to write articles
|
|
||||||
|
|
||||||
Use a markdown editor, we recommend Github's Atom, with the `Markdown formatter`
|
|
||||||
plugin.
|
|
||||||
|
|
||||||
Set the CSS to `GitHub2`.
|
|
||||||
|
|
||||||
## Guidelines
|
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|
||||||
## How to handle images
|
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|
||||||
## How to handle links to other articles
|
|
||||||
|
|
||||||
TODO
|
|
|
@ -1,12 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
ENV PROJECT=docker-hub
|
|
||||||
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
|
@ -1,123 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all binary build cross default docs docs-build docs-shell shell test test-unit test-integration test-integration-cli test-docker-py validate
|
|
||||||
|
|
||||||
# env vars passed through directly to Docker's build scripts
|
|
||||||
# to allow things like `make DOCKER_CLIENTONLY=1 binary` easily
|
|
||||||
# `docs/sources/contributing/devenvironment.md ` and `project/PACKAGERS.md` have some limited documentation of some of these
|
|
||||||
DOCKER_ENVS := \
|
|
||||||
-e BUILDFLAGS \
|
|
||||||
-e DOCKER_CLIENTONLY \
|
|
||||||
-e DOCKER_EXECDRIVER \
|
|
||||||
-e DOCKER_GRAPHDRIVER \
|
|
||||||
-e TESTDIRS \
|
|
||||||
-e TESTFLAGS \
|
|
||||||
-e TIMEOUT
|
|
||||||
# note: we _cannot_ add "-e DOCKER_BUILDTAGS" here because even if it's unset in the shell, that would shadow the "ENV DOCKER_BUILDTAGS" set in our Dockerfile, which is very important for our official builds
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR):/docs/content/docker-hub/)
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
DOCKER_IMAGE := docker$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
|
||||||
DOCKER_DOCS_IMAGE := docs-base$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
|
||||||
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 \
|
|
||||||
-v $(CURDIR):/docs/content/docker-hub/ \
|
|
||||||
-e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" \
|
|
||||||
hugo server \
|
|
||||||
--log=true --watch=true \
|
|
||||||
--port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
# ( git remote | grep -v upstream ) || git diff --name-status upstream/release..upstream/docs ./ > ./changed-files
|
|
||||||
# echo "$(GIT_BRANCH)" > GIT_BRANCH
|
|
||||||
# echo "$(AWS_S3_BUCKET)" > AWS_S3_BUCKET
|
|
||||||
# echo "$(GITCOMMIT)" > GITCOMMIT
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
||||||
|
|
||||||
# use screenshot container to update screenshots
|
|
||||||
NOAUTHSCREENSHOT := docker run -it --rm --name screen -v $(CURDIR):/srv --env-file=noauthpasswords.env svendowideit/screenshot
|
|
||||||
SCREENSHOT := docker run -it --rm --name screen -v $(CURDIR):/srv --env-file=passwords.env svendowideit/screenshot
|
|
||||||
NOLINKS := docker run -it --rm --name screen -v $(CURDIR):/srv --env-file=passwords.env --env-file=nolinks.env svendowideit/screenshot
|
|
||||||
GITHUB_DOCSUSER := docker run -it --rm --name screen -v $(CURDIR):/srv --env-file=passwords.env --env-file=githubdocs.env svendowideit/screenshot
|
|
||||||
|
|
||||||
# testing
|
|
||||||
testimage:
|
|
||||||
#$(NOAUTHSCREENSHOT) https://hub-beta.docker.com/ images/register-web.png 1280px
|
|
||||||
#$(SCREENSHOT) https://hub-beta.docker.com/explore/ images/dashboard.png 1280px
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/organizations/ orgs.png 1280px
|
|
||||||
|
|
||||||
t2:
|
|
||||||
$(NOAUTHSCREENSHOT) https://hub-beta.docker.com/ images/register-web.png 1280px
|
|
||||||
|
|
||||||
docs-images:
|
|
||||||
# non-authenticated
|
|
||||||
$(NOAUTHSCREENSHOT) https://hub-beta.docker.com/ images/register-web.png 1280px
|
|
||||||
$(NOAUTHSCREENSHOT) https://hub-beta.docker.com/login/ images/login-web.png 1280px
|
|
||||||
# authenticated
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/explore/ images/dashboard.png 1280px
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/organizations/ images/orgs.png 1280px
|
|
||||||
# $(SCREENSHOT) https://hub-beta.docker.com/ images/deploy_key.png 1280px
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/r/docsorg/private/~/settings/collaborators/ images/org-repo-collaborators.png 1280px
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/repos.png 1280px
|
|
||||||
# $(SCREENSHOT) https://hub-beta.docker.com/ images/invite.png 1280px
|
|
||||||
# $(SCREENSHOT) https://hub-beta.docker.com/ images/build-trigger.png 1280px
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/hub.png 1280px
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/u/docsorg/dashboard/teams/boomteam/ images/groups.png 1280px
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/r/library/busybox/tags/# images/busybox-image-tags.png 1280px*600px
|
|
||||||
# docs/images/getting-started.png (needs a new empty account)
|
|
||||||
|
|
||||||
nolinks:
|
|
||||||
# bitbucket.md, github.md
|
|
||||||
# uses the `nolinks` user: an account that has no accounts linked
|
|
||||||
$(NOLINKS) https://hub-beta.docker.com/account/authorized-services/ images/authorized-services.png 1280px
|
|
||||||
$(NOLINKS) https://hub-beta.docker.com/account/authorized-services/github-permissions/ add-authorized-github-service.png 1280px
|
|
||||||
|
|
||||||
# BROKEN
|
|
||||||
github:
|
|
||||||
$(GITHUB_DOCSUSER) https://github.com/docsuser/private/settings/hooks github-side-hook.png 1280px
|
|
||||||
|
|
||||||
# BROKEN, wrong URL and needs hand editing to capture the specific UI elements
|
|
||||||
broken-gitimages:
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/gh_settings.png
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/gh_menu.png
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/gh_add_ssh_user_key.png
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/gh_team_members.png
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/gh-check-user-org-dh-app-access.png
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/gh_service_hook.png
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/gh-check-admin-org-dh-app-access.png
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/gh_org_members.png
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/gh_docker-service.png
|
|
||||||
$(SCREENSHOT) https://hub-beta.docker.com/ images/gh_repo_deploy_key.png
|
|
|
@ -1,7 +0,0 @@
|
||||||
---
|
|
||||||
ErrorDocument:
|
|
||||||
Key: jsearch/index.html
|
|
||||||
IndexDocument:
|
|
||||||
Suffix: index.html
|
|
||||||
---
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs team <docs@docker.com>
|
|
||||||
|
|
||||||
ENV PROJECT=docker-store
|
|
||||||
|
|
||||||
# To get the git infos for this repo
|
|
||||||
COPY . /src
|
|
||||||
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
|
@ -1,60 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
# TBD Docs Makefile will go here
|
|
||||||
.PHONY: all binary build cross default docs docs-build docs-shell shell test test-unit test-integration test-integration-cli test-docker-py validate
|
|
||||||
|
|
||||||
# env vars passed through directly to Docker's build scripts
|
|
||||||
# to allow things like `make DOCKER_CLIENTONLY=1 binary` easily
|
|
||||||
# `docs/sources/contributing/devenvironment.md ` and `project/PACKAGERS.md` have some limited documentation of some of these
|
|
||||||
DOCKER_ENVS := \
|
|
||||||
-e BUILDFLAGS \
|
|
||||||
-e DOCKER_CLIENTONLY \
|
|
||||||
-e DOCKER_EXECDRIVER \
|
|
||||||
-e DOCKER_GRAPHDRIVER \
|
|
||||||
-e TESTDIRS \
|
|
||||||
-e TESTFLAGS \
|
|
||||||
-e TIMEOUT
|
|
||||||
# note: we _cannot_ add "-e DOCKER_BUILDTAGS" here because even if it's unset in the shell, that would shadow the "ENV DOCKER_BUILDTAGS" set in our Dockerfile, which is very important for our official builds
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
DOCKER_IMAGE := docker$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
|
||||||
DOCKER_DOCS_IMAGE := docs-base$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
|
||||||
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
# ( git remote | grep -v upstream ) || git diff --name-status upstream/release..upstream/docs ./ > ./changed-files
|
|
||||||
# echo "$(GIT_BRANCH)" > GIT_BRANCH
|
|
||||||
# echo "$(AWS_S3_BUCKET)" > AWS_S3_BUCKET
|
|
||||||
# echo "$(GITCOMMIT)" > GITCOMMIT
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
|
@ -1,7 +0,0 @@
|
||||||
---
|
|
||||||
draft: true
|
|
||||||
---
|
|
||||||
|
|
||||||
# Docker Store Docs
|
|
||||||
|
|
||||||
WIP! @sanscontext
|
|
|
@ -1,15 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
ENV PROJECT=docker-trusted-registry
|
|
||||||
# To get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
||||||
|
|
||||||
# This kludge only exists when run from the DTR repo (useful for testing)
|
|
||||||
RUN mv -f /docs/content/$PROJECT/apidocgen/ /docs/content/apidocs/ || true
|
|
|
@ -1,55 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all default docs docs-build docs-shell shell test
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
|
||||||
DOCKER_DOCS_IMAGE := docker-docs$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
local: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 \
|
|
||||||
-v $(CURDIR):/docs/content/docker-trusted-registry/ \
|
|
||||||
-e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" \
|
|
||||||
hugo server \
|
|
||||||
--log=true --watch=true \
|
|
||||||
--port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)"
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
rm -rf ./apidocgen/
|
|
||||||
cp -r ../apidocgen/output apidocgen
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
||||||
|
|
||||||
images:
|
|
||||||
$(MAKE) -C images
|
|
|
@ -1,12 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
ENV PROJECT=engine
|
|
||||||
# To get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
|
@ -1,43 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: default docs docs-build docs-shell test
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
|
||||||
DOCKER_DOCS_IMAGE := docker-docs$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) "$(DOCKER_DOCS_IMAGE)"
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
286
engine/README.md
286
engine/README.md
|
@ -1,286 +0,0 @@
|
||||||
---
|
|
||||||
draft: true
|
|
||||||
---
|
|
||||||
|
|
||||||
# Docker Documentation
|
|
||||||
|
|
||||||
The source for Docker documentation is in this directory. Our
|
|
||||||
documentation uses extended Markdown, as implemented by
|
|
||||||
[MkDocs](http://mkdocs.org). The current release of the Docker documentation
|
|
||||||
resides on [https://docs.docker.com](https://docs.docker.com).
|
|
||||||
|
|
||||||
## Understanding the documentation branches and processes
|
|
||||||
|
|
||||||
Docker has two primary branches for documentation:
|
|
||||||
|
|
||||||
| Branch | Description | URL (published via commit-hook) |
|
|
||||||
|----------|--------------------------------|------------------------------------------------------------------------------|
|
|
||||||
| `docs` | Official release documentation | [https://docs.docker.com](https://docs.docker.com) |
|
|
||||||
| `master` | Merged but unreleased development work | |
|
|
||||||
|
|
||||||
Additions and updates to upcoming releases are made in a feature branch off of
|
|
||||||
the `master` branch. The Docker maintainers also support a `docs` branch that
|
|
||||||
contains the last release of documentation.
|
|
||||||
|
|
||||||
After a release, documentation updates are continually merged into `master` as
|
|
||||||
they occur. This work includes new documentation for forthcoming features, bug
|
|
||||||
fixes, and other updates.
|
|
||||||
|
|
||||||
Periodically, the Docker maintainers update `docs.docker.com` between official
|
|
||||||
releases of Docker. They do this by cherry-picking commits from `master`,
|
|
||||||
merging them into `docs`, and then publishing the result.
|
|
||||||
|
|
||||||
In the rare case where a change is not forward-compatible, changes may be made
|
|
||||||
on other branches by special arrangement with the Docker maintainers.
|
|
||||||
|
|
||||||
### Quickstart for documentation contributors
|
|
||||||
|
|
||||||
If you are a new or beginner contributor, we encourage you to read through the
|
|
||||||
[our detailed contributors
|
|
||||||
guide](https://docs.docker.com/opensource/code/). The guide explains in
|
|
||||||
detail, with examples, how to contribute. If you are an experienced contributor
|
|
||||||
this quickstart should be enough to get you started.
|
|
||||||
|
|
||||||
The following is the essential workflow for contributing to the documentation:
|
|
||||||
|
|
||||||
1. Fork the `docker/docker` repository.
|
|
||||||
|
|
||||||
2. Clone the repository to your local machine.
|
|
||||||
|
|
||||||
3. Select an issue from `docker/docker` to work on or submit a proposal of your
|
|
||||||
own.
|
|
||||||
|
|
||||||
4. Create a feature branch from `master` in which to work.
|
|
||||||
|
|
||||||
By basing from `master` your work is automatically included in the next
|
|
||||||
release. It also allows docs maintainers to easily cherry-pick your changes
|
|
||||||
into the `docs` release branch.
|
|
||||||
|
|
||||||
4. Modify existing or add new `.md` files to the `docs` directory.
|
|
||||||
|
|
||||||
5. As you work, build the documentation site locally to see your changes.
|
|
||||||
|
|
||||||
The `docker/docker` repository contains a `Dockerfile` and a `Makefile`.
|
|
||||||
Together, these create a development environment in which you can build and
|
|
||||||
run a container running the Docker documentation website. To build the
|
|
||||||
documentation site, enter `make docs` in the `docs` directory of your `docker/docker` fork:
|
|
||||||
|
|
||||||
$ make docs
|
|
||||||
.... (lots of output) ....
|
|
||||||
docker run --rm -it -e AWS_S3_BUCKET -p 8000:8000 "docker-docs:master" mkdocs serve
|
|
||||||
Running at: http://0.0.0.0:8000/
|
|
||||||
Live reload enabled.
|
|
||||||
Hold ctrl+c to quit.
|
|
||||||
|
|
||||||
|
|
||||||
The build creates an image containing all the required tools, adds the local
|
|
||||||
`docs/` directory and generates the HTML files. Then, it runs a Docker
|
|
||||||
container with this image.
|
|
||||||
|
|
||||||
The container exposes port 8000 on the localhost so that you can connect and
|
|
||||||
see your changes. If you use Docker Machine, the `docker-machine ip
|
|
||||||
<machine-name>` command gives you the address of your server.
|
|
||||||
|
|
||||||
6. Check your writing for style and mechanical errors.
|
|
||||||
|
|
||||||
Use our [documentation style
|
|
||||||
guide](https://docs.docker.com/opensource/doc-style/) to check style. There are
|
|
||||||
several [good grammar and spelling online
|
|
||||||
checkers](http://www.hemingwayapp.com/) that can check your writing
|
|
||||||
mechanics.
|
|
||||||
|
|
||||||
7. Squash your commits on your branch.
|
|
||||||
|
|
||||||
8. Make a pull request from your fork back to Docker's `master` branch.
|
|
||||||
|
|
||||||
9. Work with the reviewers until your change is approved and merged.
|
|
||||||
|
|
||||||
### Debugging and testing
|
|
||||||
|
|
||||||
If you have any issues you need to debug, you can use `make docs-shell` and then
|
|
||||||
run `mkdocs serve`. You can use `make docs-test` to generate a report of missing
|
|
||||||
links that are referenced in the documentation—there should be none.
|
|
||||||
|
|
||||||
## Style guide
|
|
||||||
|
|
||||||
If you have questions about how to write for Docker's documentation, please see
|
|
||||||
the [style guide](https://docs.docker.com/opensource/doc-style/). The style guide provides
|
|
||||||
guidance about grammar, syntax, formatting, styling, language, or tone. If
|
|
||||||
something isn't clear in the guide, please submit an issue to let us know or
|
|
||||||
submit a pull request to help us improve it.
|
|
||||||
|
|
||||||
|
|
||||||
## Publishing documentation (for Docker maintainers)
|
|
||||||
|
|
||||||
To publish Docker's documentation you need to have Docker up and running on your
|
|
||||||
machine. You'll also need a `docs/awsconfig` file containing the settings you
|
|
||||||
need to access the AWS bucket you'll be deploying to.
|
|
||||||
|
|
||||||
The process for publishing is to build first to an AWS bucket, verify the build,
|
|
||||||
and then publish the final release.
|
|
||||||
|
|
||||||
1. Have Docker installed and running on your machine.
|
|
||||||
|
|
||||||
2. Ask the core maintainers for the `awsconfig` file.
|
|
||||||
|
|
||||||
3. Copy the `awsconfig` file to the `docs/` directory.
|
|
||||||
|
|
||||||
The `awsconfig` file contains the profiles of the S3 buckets for our
|
|
||||||
documentation sites. (If needed, the release script creates an S3 bucket and
|
|
||||||
pushes the files to it.) Each profile has this format:
|
|
||||||
|
|
||||||
[profile dowideit-docs]
|
|
||||||
aws_access_key_id = IHOIUAHSIDH234rwf....
|
|
||||||
aws_secret_access_key = OIUYSADJHLKUHQWIUHE......
|
|
||||||
region = ap-southeast-2
|
|
||||||
|
|
||||||
The `profile` name must be the same as the name of the bucket you are
|
|
||||||
deploying to.
|
|
||||||
|
|
||||||
4. Call the `make` from the `docker` directory.
|
|
||||||
|
|
||||||
$ make AWS_S3_BUCKET=dowideit-docs docs-release
|
|
||||||
|
|
||||||
This publishes _only_ to the `http://bucket-url/v1.2/` version of the
|
|
||||||
documentation.
|
|
||||||
|
|
||||||
5. If you're publishing the current release's documentation, you need to also
|
|
||||||
update the root docs pages by running
|
|
||||||
|
|
||||||
$ make AWS_S3_BUCKET=dowideit-docs BUILD_ROOT=yes docs-release
|
|
||||||
|
|
||||||
### Errors publishing using a Docker Machine VM
|
|
||||||
|
|
||||||
Sometimes, in a Windows or Mac environment, the publishing procedure returns this
|
|
||||||
error:
|
|
||||||
|
|
||||||
Post http:///var/run/docker.sock/build?rm=1&t=docker-docs%3Apost-1.2.0-docs_update-2:
|
|
||||||
dial unix /var/run/docker.sock: no such file or directory.
|
|
||||||
|
|
||||||
If this happens, set the Docker host. Run the following command to get the
|
|
||||||
variables in your shell:
|
|
||||||
|
|
||||||
docker-machine env <machine-name>
|
|
||||||
|
|
||||||
Then, set your environment accordingly.
|
|
||||||
|
|
||||||
## Cherry-picking documentation changes to update an existing release.
|
|
||||||
|
|
||||||
Whenever the core team makes a release, they publish the documentation based on
|
|
||||||
the `release` branch. At that time, the `release` branch is copied into the
|
|
||||||
`docs` branch. The documentation team makes updates between Docker releases by
|
|
||||||
cherry-picking changes from `master` into any of the documentation branches.
|
|
||||||
Typically, we cherry-pick into the `docs` branch.
|
|
||||||
|
|
||||||
For example, to update the current release's docs, do the following:
|
|
||||||
|
|
||||||
1. Go to your `docker/docker` fork and get the latest from master.
|
|
||||||
|
|
||||||
$ git fetch upstream
|
|
||||||
|
|
||||||
2. Checkout a new branch based on `upstream/docs`.
|
|
||||||
|
|
||||||
You should give your new branch a descriptive name.
|
|
||||||
|
|
||||||
$ git checkout -b post-1.2.0-docs-update-1 upstream/docs
|
|
||||||
|
|
||||||
3. In a browser window, open [https://github.com/docker/docker/commits/master].
|
|
||||||
|
|
||||||
4. Locate the merges you want to publish.
|
|
||||||
|
|
||||||
You should only cherry-pick individual commits; do not cherry-pick merge
|
|
||||||
commits. To minimize merge conflicts, start with the oldest commit and work
|
|
||||||
your way forward in time.
|
|
||||||
|
|
||||||
5. Copy the commit SHA from GitHub.
|
|
||||||
|
|
||||||
6. Cherry-pick the commit.
|
|
||||||
|
|
||||||
$ git cherry-pick -x fe845c4
|
|
||||||
|
|
||||||
7. Repeat until you have cherry-picked everything you want to merge.
|
|
||||||
|
|
||||||
8. Push your changes to your fork.
|
|
||||||
|
|
||||||
$ git push origin post-1.2.0-docs-update-1
|
|
||||||
|
|
||||||
9. Make a pull request to merge into the `docs` branch.
|
|
||||||
|
|
||||||
Do __NOT__ merge into `master`.
|
|
||||||
|
|
||||||
10. Have maintainers review your pull request.
|
|
||||||
|
|
||||||
11. Once the PR has the needed "LGTMs", merge it on GitHub.
|
|
||||||
|
|
||||||
12. Return to your local fork and make sure you are still on the `docs` branch.
|
|
||||||
|
|
||||||
$ git checkout docs
|
|
||||||
|
|
||||||
13. Fetch your merged pull request from `docs`.
|
|
||||||
|
|
||||||
$ git fetch upstream/docs
|
|
||||||
|
|
||||||
14. Ensure your branch is clean and set to the latest.
|
|
||||||
|
|
||||||
$ git reset --hard upstream/docs
|
|
||||||
|
|
||||||
15. Copy the `awsconfig` file into the `docs` directory.
|
|
||||||
|
|
||||||
16. Make the beta documentation
|
|
||||||
|
|
||||||
$ make AWS_S3_BUCKET=beta-docs.docker.io BUILD_ROOT=yes docs-release
|
|
||||||
|
|
||||||
17. Open [the beta
|
|
||||||
website](http://beta-docs.docker.io.s3-website-us-west-2.amazonaws.com/) site
|
|
||||||
and make sure what you published is correct.
|
|
||||||
|
|
||||||
19. When you're happy with your content, publish the docs to our live site:
|
|
||||||
|
|
||||||
$ make AWS_S3_BUCKET=docs.docker.com BUILD_ROOT=yes
|
|
||||||
DISTRIBUTION_ID=C2K6......FL2F docs-release
|
|
||||||
|
|
||||||
20. Test the uncached version of the live docs at [http://docs.docker.com.s3-website-us-east-1.amazonaws.com/]
|
|
||||||
|
|
||||||
|
|
||||||
### Caching and the docs
|
|
||||||
|
|
||||||
New docs do not appear live on the site until the cache (a complex, distributed
|
|
||||||
CDN system) is flushed. The `make docs-release` command flushes the cache _if_
|
|
||||||
the `DISTRIBUTION_ID` is set to the Cloudfront distribution ID. The cache flush
|
|
||||||
can take at least 15 minutes to run and you can check its progress with the CDN
|
|
||||||
Cloudfront Purge Tool Chrome app.
|
|
||||||
|
|
||||||
## Removing files from the docs.docker.com site
|
|
||||||
|
|
||||||
Sometimes it becomes necessary to remove files from the historical published documentation.
|
|
||||||
The most reliable way to do this is to do it directly using `aws s3` commands running in a
|
|
||||||
docs container:
|
|
||||||
|
|
||||||
Start the docs container like `make docs-shell`, but bind mount in your `awsconfig`:
|
|
||||||
|
|
||||||
```
|
|
||||||
docker run --rm -it -v $(CURDIR)/docs/awsconfig:/docs/awsconfig docker-docs:master bash
|
|
||||||
```
|
|
||||||
|
|
||||||
and then the following example shows deleting 2 documents from s3, and then requesting the
|
|
||||||
CloudFlare cache to invalidate them:
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
export BUCKET BUCKET=docs.docker.com
|
|
||||||
export AWS_CONFIG_FILE=$(pwd)/awsconfig
|
|
||||||
aws s3 --profile $BUCKET ls s3://$BUCKET
|
|
||||||
aws s3 --profile $BUCKET rm s3://$BUCKET/v1.0/reference/api/docker_io_oauth_api/index.html
|
|
||||||
aws s3 --profile $BUCKET rm s3://$BUCKET/v1.1/reference/api/docker_io_oauth_api/index.html
|
|
||||||
|
|
||||||
aws configure set preview.cloudfront true
|
|
||||||
export DISTRIBUTION_ID=YUTIYUTIUTIUYTIUT
|
|
||||||
aws cloudfront create-invalidation --profile docs.docker.com --distribution-id $DISTRIBUTION_ID --invalidation-batch '{"Paths":{"Quantity":1, "Items":["/v1.0/reference/api/docker_io_oauth_api/"]},"CallerReference":"6Mar2015sventest1"}'
|
|
||||||
aws cloudfront create-invalidation --profile docs.docker.com --distribution-id $DISTRIBUTION_ID --invalidation-batch '{"Paths":{"Quantity":1, "Items":["/v1.1/reference/api/docker_io_oauth_api/"]},"CallerReference":"6Mar2015sventest1"}'
|
|
||||||
```
|
|
||||||
|
|
||||||
### Generate the man pages
|
|
||||||
|
|
||||||
For information on generating man pages (short for manual page), see the README.md
|
|
||||||
document in [the man page directory](https://github.com/docker/docker/tree/master/man)
|
|
||||||
in this project.
|
|
|
@ -1,22 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
|
|
||||||
# Sed to process GitHub Markdown
|
|
||||||
# 1-2 Remove comment code from metadata block
|
|
||||||
#
|
|
||||||
for i in ls -l /docs/content/*
|
|
||||||
do # Line breaks are important
|
|
||||||
if [ -d $i ] # Spaces are important
|
|
||||||
then
|
|
||||||
y=${i##*/}
|
|
||||||
find $i -type f -name "*.md" -exec sed -i.old \
|
|
||||||
-e '/^<!.*metadata]>/g' \
|
|
||||||
-e '/^<!.*end-metadata.*>/g' {} \;
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
8
index.md
8
index.md
|
@ -10,13 +10,7 @@ layout: docs
|
||||||
|
|
||||||
{% include content/docker_elevator_pitch.md %}
|
{% include content/docker_elevator_pitch.md %}
|
||||||
|
|
||||||
## Getting Started
|
<a href="getting-started/index.md" class="button darkblue-btn">Learn the Docker Platform</a>
|
||||||
|
|
||||||
Try [Getting Started withDocker Engine](engine/getstarted/index.md) to learn the
|
|
||||||
basics of building and running containers, [Getting Started with Docker Compose](compose/gettingstarted.md) to see
|
|
||||||
how easy it is to deploy a multi-container app (standing up a Python + Redis app in the process), or [our Swarm tutorial](engine/swarm/swarm-tutorial/index.md), which
|
|
||||||
shows how to run containers on many hosts (VMs or physical machines) at once,
|
|
||||||
as a cluster. Prefer a more linear, guided, visual tour? [Check out our self-paced training](https://training.docker.com/self-paced-training)!
|
|
||||||
|
|
||||||
{% include content/typical_docker_workflow.md %}
|
{% include content/typical_docker_workflow.md %}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
ENV PROJECT=kitematic
|
|
||||||
# To get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
|
@ -1,42 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all default docs docs-build docs-shell shell test
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
|
||||||
DOCKER_DOCS_IMAGE := docker-docs$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)"
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
|
@ -1,63 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
# Populate an array with just docker dirs and one with content dirs
|
|
||||||
docker_dir=(`ls -d /docs/content/docker/*`)
|
|
||||||
content_dir=(`ls -d /docs/content/*`)
|
|
||||||
|
|
||||||
# Loop content not of docker/
|
|
||||||
#
|
|
||||||
# Sed to process GitHub Markdown
|
|
||||||
# 1-2 Remove comment code from metadata block
|
|
||||||
# 3 Remove .md extension from link text
|
|
||||||
# 4 Change ](/ to ](/project/ in links
|
|
||||||
# 5 Change ](word) to ](/project/word)
|
|
||||||
# 6 Change ](../../ to ](/project/
|
|
||||||
# 7 Change ](../ to ](/project/word)
|
|
||||||
#
|
|
||||||
for i in "${content_dir[@]}"
|
|
||||||
do
|
|
||||||
:
|
|
||||||
case $i in
|
|
||||||
"/docs/content/windows")
|
|
||||||
;;
|
|
||||||
"/docs/content/mac")
|
|
||||||
;;
|
|
||||||
"/docs/content/linux")
|
|
||||||
;;
|
|
||||||
"/docs/content/docker")
|
|
||||||
y=${i##*/}
|
|
||||||
find $i -type f -name "*.md" -exec sed -i.old \
|
|
||||||
-e '/^<!.*metadata]>/g' \
|
|
||||||
-e '/^<!.*end-metadata.*>/g' {} \;
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
y=${i##*/}
|
|
||||||
find $i -type f -name "*.md" -exec sed -i.old \
|
|
||||||
-e '/^<!.*metadata]>/g' \
|
|
||||||
-e '/^<!.*end-metadata.*>/g' \
|
|
||||||
-e 's/\(\]\)\([(]\)\(\/\)/\1\2\/'$y'\//g' \
|
|
||||||
-e 's/\(\][(]\)\([A-z].*\)\(\.md\)/\1\/'$y'\/\2/g' \
|
|
||||||
-e 's/\([(]\)\(.*\)\(\.md\)/\1\2/g' \
|
|
||||||
-e 's/\(\][(]\)\(\.\/\)/\1\/'$y'\//g' \
|
|
||||||
-e 's/\(\][(]\)\(\.\.\/\.\.\/\)/\1\/'$y'\//g' \
|
|
||||||
-e 's/\(\][(]\)\(\.\.\/\)/\1\/'$y'\//g' {} \;
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
#
|
|
||||||
# Move docker directories to content
|
|
||||||
#
|
|
||||||
for i in "${docker_dir[@]}"
|
|
||||||
do
|
|
||||||
:
|
|
||||||
if [ -d $i ]
|
|
||||||
then
|
|
||||||
mv $i /docs/content/
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -rf /docs/content/docker
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
env PROJECT=machine
|
|
||||||
|
|
||||||
# To get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
|
@ -1,42 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all default docs docs-build docs-shell shell test
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
|
||||||
DOCKER_DOCS_IMAGE := docker-docs$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) "$(DOCKER_DOCS_IMAGE)"
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
|
@ -1,88 +0,0 @@
|
||||||
---
|
|
||||||
description: Machine README
|
|
||||||
draft: true
|
|
||||||
keywords:
|
|
||||||
- Docker, documentation, manual, guide, reference, api
|
|
||||||
title: Machine README
|
|
||||||
---
|
|
||||||
|
|
||||||
# Contributing to the Docker Machine documentation
|
|
||||||
|
|
||||||
The documentation in this directory is part of the [this documentation](https://docs.docker.com). Docker uses [the Hugo static generator](http://gohugo.io/overview/introduction/) to convert project Markdown files to a static HTML site.
|
|
||||||
|
|
||||||
You don't need to be a Hugo expert to contribute to the machine documentation. If you are familiar with Markdown, you can modify the content in the `docs` files.
|
|
||||||
|
|
||||||
If you want to add a new file or change the location of the document in the menu, you do need to know a little more. If you want the detail of contributing, [use our contributor guide](http://docs.docker.com/project/make-a-contribution/).
|
|
||||||
|
|
||||||
## Documentation contributing workflow
|
|
||||||
|
|
||||||
1. Edit a Markdown file in the tree.
|
|
||||||
|
|
||||||
2. Save your changes.
|
|
||||||
|
|
||||||
3. Make sure all your changes maintain an 80 character line wrap.
|
|
||||||
|
|
||||||
All check lines you've written. Don't wrap content you didn't change material.
|
|
||||||
|
|
||||||
4. Make sure you are in the `docs` subdirectory.
|
|
||||||
|
|
||||||
5. Build the documentation.
|
|
||||||
|
|
||||||
$ make docs
|
|
||||||
---> ffcf3f6c4e97
|
|
||||||
Removing intermediate container a676414185e8
|
|
||||||
Successfully built ffcf3f6c4e97
|
|
||||||
docker run --rm -it -e AWS_S3_BUCKET -e NOCACHE -p 8000:8000 -e DOCKERHOST "docs-base:test-tooling" hugo server --port=8000 --baseUrl=192.168.59.103 --bind=0.0.0.0
|
|
||||||
ERROR: 2015/06/13 MenuEntry's .Url is deprecated and will be removed in Hugo 0.15. Use .URL instead.
|
|
||||||
0 of 4 drafts rendered
|
|
||||||
0 future content
|
|
||||||
12 pages created
|
|
||||||
0 paginator pages created
|
|
||||||
0 tags created
|
|
||||||
0 categories created
|
|
||||||
in 55 ms
|
|
||||||
Serving pages from /docs/public
|
|
||||||
Web Server is available at http://0.0.0.0:8000/
|
|
||||||
Press Ctrl+C to stop
|
|
||||||
|
|
||||||
6. Open the available server in your browser.
|
|
||||||
|
|
||||||
The documentation server has the complete menu but only the Docker machine
|
|
||||||
documentation resolves. You can't access the other project docs from this
|
|
||||||
localized build.
|
|
||||||
|
|
||||||
## Tips on Hugo metadata and menu positioning
|
|
||||||
|
|
||||||
The top of each Docker machine documentation file contains TOML metadata. The metadata is commented out to prevent it from appearing in GitHub.
|
|
||||||
|
|
||||||
<!--[metadata]>
|
|
||||||
+++
|
|
||||||
title = "Extending services in machine"
|
|
||||||
description = "How to use Docker machine's extends keyword to share configuration between files and projects"
|
|
||||||
keywords = ["fig, composition, machine, docker, orchestration, documentation, docs"]
|
|
||||||
[menu.main]
|
|
||||||
parent="workw_machine"
|
|
||||||
weight=2
|
|
||||||
+++
|
|
||||||
<![end-metadata]-->
|
|
||||||
|
|
||||||
The metadata alone has this structure:
|
|
||||||
|
|
||||||
+++
|
|
||||||
title = "Extending services in machine"
|
|
||||||
description = "How to use Docker machine's extends keyword to share configuration between files and projects"
|
|
||||||
keywords = ["fig, composition, machine, docker, orchestration, documentation, docs"]
|
|
||||||
[menu.main]
|
|
||||||
parent="workw_machine"
|
|
||||||
weight=2
|
|
||||||
+++
|
|
||||||
|
|
||||||
The `[menu.main]` section refers to navigation defined [in the main Docker menu](https://github.com/docker/docs-base/blob/hugo/config.toml). This metadata says _add a menu item called_ Extending services in machine _to the menu with the_ `smn_workdw_machine` _identifier_. If you locate the menu in the configuration, you'll find _Create multi-container applications_ is the menu title.
|
|
||||||
|
|
||||||
You can move an article in the tree by specifying a new parent. You can shift the location of the item by changing its weight. Higher numbers are heavier and shift the item to the bottom of menu. Low or no numbers shift it up.
|
|
||||||
|
|
||||||
## Other key documentation repositories
|
|
||||||
|
|
||||||
The `docker/docs-base` repository contains [the Hugo theme and menu configuration](https://github.com/docker/docs-base). If you open the `Dockerfile` you'll see the `make docs` relies on this as a base image for building the machine documentation.
|
|
||||||
|
|
||||||
The `docker/docs.docker.com` repository contains [build system for building the Docker documentation site](https://github.com/docker/docs.docker.com). Fork this repository to build the entire documentation site.
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Mary Anthony <mary@docker.com> (@moxiegirl)
|
|
||||||
|
|
||||||
ENV PROJECT=notary
|
|
||||||
|
|
||||||
# To get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -r /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
|
@ -1,59 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all binary build cross default docs docs-build docs-shell shell test test-unit test-integration test-integration-cli test-docker-py validate
|
|
||||||
|
|
||||||
# env vars passed through directly to Docker's build scripts
|
|
||||||
# to allow things like `make DOCKER_CLIENTONLY=1 binary` easily
|
|
||||||
# `docs/sources/contributing/devenvironment.md ` and `project/PACKAGERS.md` have some limited documentation of some of these
|
|
||||||
DOCKER_ENVS := \
|
|
||||||
-e BUILDFLAGS \
|
|
||||||
-e DOCKER_CLIENTONLY \
|
|
||||||
-e DOCKER_EXECDRIVER \
|
|
||||||
-e DOCKER_GRAPHDRIVER \
|
|
||||||
-e TESTDIRS \
|
|
||||||
-e TESTFLAGS \
|
|
||||||
-e TIMEOUT
|
|
||||||
# note: we _cannot_ add "-e DOCKER_BUILDTAGS" here because even if it's unset in the shell, that would shadow the "ENV DOCKER_BUILDTAGS" set in our Dockerfile, which is very important for our official builds
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
DOCKER_IMAGE := docker$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
|
||||||
DOCKER_DOCS_IMAGE := docs-base$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
|
||||||
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
# ( git remote | grep -v upstream ) || git diff --name-status upstream/release..upstream/docs ./ > ./changed-files
|
|
||||||
# echo "$(GIT_BRANCH)" > GIT_BRANCH
|
|
||||||
# echo "$(AWS_S3_BUCKET)" > AWS_S3_BUCKET
|
|
||||||
# echo "$(GITCOMMIT)" > GITCOMMIT
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
|
@ -1,77 +0,0 @@
|
||||||
---
|
|
||||||
draft: true
|
|
||||||
---
|
|
||||||
|
|
||||||
# Contributing to the Docker Notary documentation
|
|
||||||
|
|
||||||
The documentation in this directory is part of the [https://docs.docker.com](https://docs.docker.com) website. Docker uses [the Hugo static generator](http://gohugo.io/overview/introduction/) to convert project Markdown files to a static HTML site.
|
|
||||||
|
|
||||||
You don't need to be a Hugo expert to contribute to the Notary documentation. If you are familiar with Markdown, you can modify the content in the `docs` files.
|
|
||||||
|
|
||||||
If you want to add a new file or change the location of the document in the menu, you do need to know a little more.
|
|
||||||
|
|
||||||
## Documentation contributing workflow
|
|
||||||
|
|
||||||
1. Edit a Markdown file in the tree.
|
|
||||||
|
|
||||||
2. Save your changes.
|
|
||||||
|
|
||||||
3. Make sure you are in the `docs` subdirectory.
|
|
||||||
|
|
||||||
4. Build the documentation.
|
|
||||||
|
|
||||||
$ make docs
|
|
||||||
---> ffcf3f6c4e97
|
|
||||||
Removing intermediate container a676414185e8
|
|
||||||
Successfully built ffcf3f6c4e97
|
|
||||||
docker run --rm -it -e AWS_S3_BUCKET -e NOCACHE -p 8000:8000 -e DOCKERHOST "docs-base:test-tooling" hugo server --port=8000 --baseUrl=192.168.59.103 --bind=0.0.0.0
|
|
||||||
ERROR: 2015/06/13 MenuEntry's .Url is deprecated and will be removed in Hugo 0.15. Use .URL instead.
|
|
||||||
0 of 4 drafts rendered
|
|
||||||
0 future content
|
|
||||||
12 pages created
|
|
||||||
0 paginator pages created
|
|
||||||
0 tags created
|
|
||||||
0 categories created
|
|
||||||
in 55 ms
|
|
||||||
Serving pages from /docs/public
|
|
||||||
Web Server is available at http://0.0.0.0:8000/
|
|
||||||
Press Ctrl+C to stop
|
|
||||||
|
|
||||||
5. Open the available server in your browser.
|
|
||||||
|
|
||||||
## Tips on Hugo metadata and menu positioning
|
|
||||||
|
|
||||||
The top of each Docker Notary documentation file contains TOML metadata. The metadata is commented out to prevent it from appearing in GitHub.
|
|
||||||
|
|
||||||
<!--[metadata]>
|
|
||||||
+++
|
|
||||||
title = "Extending services in Notary"
|
|
||||||
description = "How to use Docker Notary's extends keyword to share configuration between files and projects"
|
|
||||||
keywords = ["fig, composition, Notary, docker, orchestration, documentation, docs"]
|
|
||||||
[menu.main]
|
|
||||||
parent="smn_workw_Notary"
|
|
||||||
weight=2
|
|
||||||
+++
|
|
||||||
<![end-metadata]-->
|
|
||||||
|
|
||||||
The metadata alone has this structure:
|
|
||||||
|
|
||||||
+++
|
|
||||||
title = "Extending services in Notary"
|
|
||||||
description = "How to use Docker Notary's extends keyword to share configuration between files and projects"
|
|
||||||
keywords = ["fig, composition, Notary, docker, orchestration, documentation, docs"]
|
|
||||||
[menu.main]
|
|
||||||
parent="smn_workw_Notary"
|
|
||||||
weight=2
|
|
||||||
+++
|
|
||||||
|
|
||||||
The `[menu.main]` section refers to navigation defined [in the main Docker menu](https://github.com/docker/docs-base/blob/hugo/config.toml). This metadata says *add a menu item called* Extending services in Notary *to the menu with the* `smn_workdw_Notary` *identifier*. If you locate the menu in the configuration, you'll find *Create multi-container applications* is the menu title.
|
|
||||||
|
|
||||||
You can move an article in the tree by specifying a new parent. You can shift the location of the item by changing its weight. Higher numbers are heavier and shift the item to the bottom of menu. Low or no numbers shift it up.
|
|
||||||
|
|
||||||
|
|
||||||
## Other key documentation repositories
|
|
||||||
|
|
||||||
The `docker/docs-base` repository contains [the Hugo theme and menu configuration](https://github.com/docker/docs-base). If you open the `Dockerfile` you'll see the `make docs` relies on this as a base image for building the Notary documentation.
|
|
||||||
|
|
||||||
The `docker/docs.docker.com` repository contains [build system for building the Docker documentation site](https://github.com/docker/docs.docker.com). Fork this repository to build the entire documentation site.
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
ENV PROJECT=opensource
|
|
||||||
|
|
||||||
# To get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
|
@ -1,44 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all build default docs docs-build docs-shell shell test
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
|
||||||
DOCKER_DOCS_IMAGE := docker-docs$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)"
|
|
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
ENV PROJECT=registry
|
|
||||||
|
|
||||||
# To get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
|
@ -1,42 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all default docs docs-build docs-shell shell test
|
|
||||||
|
|
||||||
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
|
||||||
DOCKER_DOCS_IMAGE := registry-docs$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) "$(DOCKER_DOCS_IMAGE)"
|
|
|
@ -1,12 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
FROM docs/base:oss
|
|
||||||
MAINTAINER Docker Docs <docs@docker.com>
|
|
||||||
|
|
||||||
ENV PROJECT=swarm
|
|
||||||
# to get the git info for this repo
|
|
||||||
COPY . /src
|
|
||||||
RUN rm -rf /docs/content/$PROJECT/
|
|
||||||
COPY . /docs/content/$PROJECT/
|
|
|
@ -1,41 +0,0 @@
|
||||||
---
|
|
||||||
{}
|
|
||||||
---
|
|
||||||
|
|
||||||
.PHONY: all default docs docs-build docs-shell shell test
|
|
||||||
# to allow `make DOCSDIR=1 docs-shell` (to create a bind mount in docs)
|
|
||||||
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR):/docs/content/swarm/)
|
|
||||||
|
|
||||||
# to allow `make DOCSPORT=9000 docs`
|
|
||||||
DOCSPORT := 8000
|
|
||||||
|
|
||||||
# Get the IP ADDRESS
|
|
||||||
DOCKER_IP=$(shell python -c "import urlparse ; print urlparse.urlparse('$(DOCKER_HOST)').hostname or ''")
|
|
||||||
HUGO_BASE_URL=$(shell test -z "$(DOCKER_IP)" && echo localhost || echo "$(DOCKER_IP)")
|
|
||||||
HUGO_BIND_IP=0.0.0.0
|
|
||||||
|
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
|
||||||
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
|
||||||
DOCKER_DOCS_IMAGE := docker-docs$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
|
||||||
|
|
||||||
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET -e NOCACHE
|
|
||||||
|
|
||||||
# for some docs workarounds (see below in "docs-build" target)
|
|
||||||
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
|
|
||||||
|
|
||||||
default: docs
|
|
||||||
|
|
||||||
docs: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP) --watch
|
|
||||||
|
|
||||||
docs-draft: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 -e DOCKERHOST "$(DOCKER_DOCS_IMAGE)" hugo server --buildDrafts="true" --port=$(DOCSPORT) --baseUrl=$(HUGO_BASE_URL) --bind=$(HUGO_BIND_IP)
|
|
||||||
|
|
||||||
docs-shell: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
|
|
||||||
|
|
||||||
test: docs-build
|
|
||||||
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)"
|
|
||||||
|
|
||||||
docs-build:
|
|
||||||
docker build -t "$(DOCKER_DOCS_IMAGE)" .
|
|
14
test/beta.md
14
test/beta.md
|
@ -1,14 +0,0 @@
|
||||||
---
|
|
||||||
advisory: docker4win-beta
|
|
||||||
description: test index page
|
|
||||||
draft: true
|
|
||||||
keywords:
|
|
||||||
- docker, documentation, about, technology, understanding, release
|
|
||||||
menu:
|
|
||||||
main:
|
|
||||||
parent: mn_test
|
|
||||||
title: BETA Test index page
|
|
||||||
---
|
|
||||||
|
|
||||||
# beta test index page
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
---
|
|
||||||
advisory: experimental
|
|
||||||
description: test index page
|
|
||||||
draft: true
|
|
||||||
keywords:
|
|
||||||
- docker, documentation, about, technology, understanding, release
|
|
||||||
menu:
|
|
||||||
main:
|
|
||||||
parent: mn_test
|
|
||||||
title: Experimental Test index page
|
|
||||||
---
|
|
||||||
|
|
||||||
# Experimental test index page
|
|
||||||
|
|
142
test/index.md
142
test/index.md
|
@ -1,142 +0,0 @@
|
||||||
---
|
|
||||||
advisory: Custom advisory text
|
|
||||||
description: test index page
|
|
||||||
draft: true
|
|
||||||
keywords:
|
|
||||||
- docker, documentation, about, technology, understanding, release
|
|
||||||
menu:
|
|
||||||
main:
|
|
||||||
parent: mn_test
|
|
||||||
title: Test index page
|
|
||||||
---
|
|
||||||
|
|
||||||
# test index page
|
|
||||||
|
|
||||||
> **Note**: To enable autoredeploy on an image stored in a third party registry,
|
|
||||||
> you will need to use [redeploy triggers](triggers.md) instead.
|
|
||||||
|
|
||||||
<p><a class="button darkblue-btn" href="https://dyhfha9j6srsj.cloudfront.net/Docker.dmg">Get Docker for Mac</a></p>
|
|
||||||
|
|
||||||
|
|
||||||
1. There are
|
|
||||||
2. several
|
|
||||||
3. things
|
|
||||||
that are good, but `docker run --rm -it` is lots to type all the time.
|
|
||||||
|
|
||||||
- to
|
|
||||||
- know
|
|
||||||
|
|
||||||
```Dockerfile
|
|
||||||
FROM alpine
|
|
||||||
MAINTAINER SvenDowideit <SvenDowideit@docker.com>
|
|
||||||
```
|
|
||||||
|
|
||||||
Some of the daemon's options are:
|
|
||||||
|
|
||||||
| Flag | Description |
|
|
||||||
|-----------------------|-----------------------------------------------------------|
|
|
||||||
| `-D`, `--debug=false` | Enable or disable debug mode. By default, this is false. |
|
|
||||||
| `-H`,`--host=[]` | Daemon socket(s) to connect to. |
|
|
||||||
| `--tls=false` | Enable or disable TLS. By default, this is false. |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## When writing markdown
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent a lorem et urna dictum faucibus. Morbi a nunc consequat neque feugiat commodo. Donec placerat sit amet eros at luctus. Sed non elementum lectus. Nunc lacus neque, dignissim in nunc eu, sollicitudin congue leo. Proin tempus metus ac lacinia viverra. Aenean tortor neque, egestas a nisl tempus, tempus gravida eros. Vivamus efficitur ipsum id est congue, sed rhoncus neque consectetur. Sed enim ante, mollis ut erat sit amet, semper euismod erat. Donec tincidunt consequat varius. Suspendisse potenti. Nullam blandit pellentesque consectetur. Nulla bibendum turpis tellus, sit amet tristique quam ultrices quis. Nam commodo eleifend lorem, vel suscipit nisl viverra et. Maecenas viverra lobortis nibh ac aliquet.
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, **consectetur adipiscing** elit. Praesent a lorem et urna dictum faucibus. Morbi a nunc consequat neque feugiat commodo. Donec placerat sit amet eros at luctus. Sed non elementum lectus. Nunc lacus neque, dignissim in nunc eu, sollicitudin congue leo. Proin tempus metus ac lacinia viverra. Aenean tortor neque, egestas a nisl tempus, tempus gravida eros. Vivamus efficitur ipsum id est congue, sed rhoncus neque consectetur. Sed enim ante, mollis ut erat sit amet, semper euismod erat. Donec tincidunt consequat varius. Suspendisse potenti. Nullam blandit pellentesque consectetur. Nulla bibendum turpis tellus, sit amet tristique quam ultrices quis. Nam commodo eleifend lorem, vel suscipit nisl viverra et. Maecenas viverra lobortis nibh ac aliquet.
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. **Praesent a lorem et** urna dictum faucibus. Morbi a nunc consequat neque feugiat commodo. Donec placerat sit amet eros at luctus. Sed non elementum lectus. Nunc lacus neque, dignissim in nunc eu, sollicitudin congue leo. Proin tempus metus ac lacinia viverra. Aenean tortor neque, egestas a nisl tempus, tempus gravida eros. Vivamus efficitur ipsum id est congue, sed rhoncus neque consectetur. Sed enim ante, mollis ut erat sit amet, semper euismod erat. Donec tincidunt consequat varius. Suspendisse potenti. Nullam blandit pellentesque consectetur. Nulla bibendum turpis tellus, sit amet tristique quam ultrices quis. Nam commodo eleifend lorem, vel suscipit nisl viverra et. Maecenas viverra lobortis nibh ac aliquet.
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. __Praesent a lorem__ et urna dictum faucibus. Morbi a nunc consequat neque feugiat commodo. Donec placerat sit amet eros at luctus. Sed non elementum lectus. Nunc lacus neque, dignissim in nunc eu, sollicitudin congue leo. Proin tempus metus ac lacinia viverra. Aenean tortor neque, egestas a nisl tempus, tempus gravida eros. Vivamus efficitur ipsum id est congue, sed rhoncus neque consectetur. Sed enim ante, mollis ut erat sit amet, semper euismod erat. Donec tincidunt consequat varius. Suspendisse potenti. Nullam blandit pellentesque consectetur. Nulla bibendum turpis tellus, sit amet tristique quam ultrices quis. Nam commodo eleifend lorem, vel suscipit nisl viverra et. Maecenas viverra lobortis nibh ac aliquet.
|
|
||||||
### level 3
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent a lorem et urna dictum faucibus. Morbi a nunc consequat neque feugiat commodo. Donec placerat sit amet eros at luctus. Sed non elementum lectus. Nunc lacus neque, dignissim in nunc eu, sollicitudin congue leo. Proin tempus metus ac lacinia viverra. Aenean tortor neque, egestas a nisl tempus, tempus gravida eros. Vivamus efficitur ipsum id est congue, sed rhoncus neque consectetur. Sed enim ante, mollis ut erat sit amet, semper euismod erat. Donec tincidunt consequat varius. Suspendisse potenti. Nullam blandit pellentesque consectetur. Nulla bibendum turpis tellus, sit amet tristique quam ultrices quis. Nam commodo eleifend lorem, vel suscipit nisl viverra et. Maecenas viverra lobortis nibh ac aliquet.
|
|
||||||
#### level 4
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent a lorem et urna dictum faucibus. Morbi a nunc consequat neque feugiat commodo. Donec placerat sit amet eros at luctus. Sed non elementum lectus. Nunc lacus neque, dignissim in nunc eu, sollicitudin congue leo. Proin tempus metus ac lacinia viverra. Aenean tortor neque, egestas a nisl tempus, tempus gravida eros. Vivamus efficitur ipsum id est congue, sed rhoncus neque consectetur. Sed enim ante, mollis ut erat sit amet, semper euismod erat. Donec tincidunt consequat varius. Suspendisse potenti. Nullam blandit pellentesque consectetur. Nulla bibendum turpis tellus, sit amet tristique quam ultrices quis. Nam commodo eleifend lorem, vel suscipit nisl viverra et. Maecenas viverra lobortis nibh ac aliquet.
|
|
||||||
## level 2
|
|
||||||
```bash
|
|
||||||
root@7d7ed2558cd3:~/sven/src/docs-base-1.12-integration/content# make docs
|
|
||||||
make: *** No rule to make target 'docs'. Stop.
|
|
||||||
root@7d7ed2558cd3:~/sven/src/docs-base-1.12-integration/content# cd ..
|
|
||||||
root@7d7ed2558cd3:~/sven/src/docs-base-1.12-integration# make docs
|
|
||||||
docker build -t "docs-base:master" .
|
|
||||||
Sending build context to Docker daemon 8.087 MB
|
|
||||||
Step 1 : FROM debian:jessie
|
|
||||||
---> 47af6ca8a14a && apt-get install -y gettext git wget libssl-dev make python-dev python-pip python-setuptools subversion-tool
|
|
||||||
s vim-tiny ssed curl ary&& apt-get clean cker.co&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
||||||
---> Using cache
|
|
||||||
---> 79f09c378b62
|
|
||||||
Step 4 : RUN pip install awscli==1.4.4 pyopenssl==0.12
|
|
||||||
---> Using cache
|
|
||||||
---> 5a93a77583a9
|
|
||||||
Step 5 : ENV HUGO_VERSION 0.16-pre3
|
|
||||||
---> Using cache
|
|
||||||
---> c8925b6323c8
|
|
||||||
Step 6 : RUN curl -sSL -o /usr/local/bin/hugo https://github.com/docker/hugo/releases/download/${HUGO_VERSION}/hugo && chmod 755 /usr/local/b
|
|
||||||
in/hugo && /usr/local/bin/hugo version
|
|
||||||
---> Using cache
|
|
||||||
---> bc7cde498ed7
|
|
||||||
Step 7 : RUN curl -sSL -o /usr/local/bin/markdownlint https://github.com/docker/markdownlint/releases/download/v0.9.5/markdownlint && chmod 7
|
|
||||||
55 /usr/local/bin/markdownlint
|
|
||||||
---> Using cache
|
|
||||||
---> c3101af070ff
|
|
||||||
Step 8 : RUN curl -sSL -o /usr/local/bin/linkcheck https://github.com/docker/linkcheck/releases/download/v0.3/linkcheck && chmod 755 /usr/loc
|
|
||||||
al/bin/linkcheck
|
|
||||||
---> Using cache
|
|
||||||
---> 116e258eda46
|
|
||||||
Step 9 : WORKDIR /docs
|
|
||||||
---> Using cache
|
|
||||||
---> 0bae93a3fb0c
|
|
||||||
Step 10 : COPY . /docs
|
|
||||||
---> 72cc369c38e4
|
|
||||||
Removing intermediate container 845e09bb8df8
|
|
||||||
Step 11 : RUN chmod 755 /docs/validate.sh
|
|
||||||
---> Running in 4d4494c7b56d
|
|
||||||
---> eb09024649aa
|
|
||||||
Removing intermediate container 4d4494c7b56d
|
|
||||||
Step 12 : EXPOSE 8000
|
|
||||||
---> Running in ac42def06104
|
|
||||||
---> 0739c6007a34
|
|
||||||
Removing intermediate container ac42def06104
|
|
||||||
Step 13 : CMD /docs/validate.sh
|
|
||||||
---> Running in d595b2f0a12b
|
|
||||||
---> 8504027ae838
|
|
||||||
Removing intermediate container d595b2f0a12b
|
|
||||||
Successfully built 8504027ae838
|
|
||||||
docker run --rm -it -e AWS_S3_BUCKET -e NOCACHE --name docker-docs-tools -p 8000:8000 -e DOCKERHOST "docs-base:master" hugo server --port=800
|
|
||||||
0 --baseUrl=localhost --bind=0.0.0.0 --config=./config.toml
|
|
||||||
INFO: 2016/06/06 00:30:31 hugo.go:455: Using config file: ./config.toml
|
|
||||||
WARN: 2016/06/06 00:30:31 hugo.go:549: Unable to find Static Directory: /docs/static/
|
|
||||||
INFO: 2016/06/06 00:30:31 hugo.go:558: /docs/themes/docker-2016/static is the only static directory available to sync from
|
|
||||||
INFO: 2016/06/06 00:30:31 hugo.go:601: syncing static files to /
|
|
||||||
Started building site
|
|
||||||
INFO: 2016/06/06 00:30:31 site.go:1248: found taxonomies: map[string]string{"tag":"tags", "category":"categories"}
|
|
||||||
WARN: 2016/06/06 00:30:31 site.go:1998: Unable to locate layout for section test: [section/test.html _default/section.html _default/list.html
|
|
||||||
indexes/test.html _default/indexes.html theme/section/test.html theme/_default/section.html theme/_default/list.html theme/indexes/test.html t
|
|
||||||
heme/_default/indexes.html theme/section/test.html theme/_default/section.html theme/_default/list.html theme/indexes/test.html theme/_default
|
|
||||||
/indexes.html theme/theme/section/test.html theme/theme/_default/section.html theme/theme/_default/list.html theme/theme/indexes/test.html the
|
|
||||||
me/theme/_default/indexes.html]
|
|
||||||
WARN: 2016/06/06 00:30:31 site.go:1974: "test" is rendered empty
|
|
||||||
WARN: 2016/06/06 00:30:31 site.go:1998: Unable to locate layout for section : [section/.html _default/section.html _default/list.html indexes/
|
|
||||||
.html _default/indexes.html theme/section/.html theme/_default/section.html theme/_default/list.html theme/indexes/.html theme/_default/indexe
|
|
||||||
s.html theme/section/.html theme/_default/section.html theme/_default/list.html theme/indexes/.html theme/_default/indexes.html theme/theme/se
|
|
||||||
ction/.html theme/theme/_default/section.html theme/theme/_default/list.html theme/theme/indexes/.html theme/theme/_default/indexes.html]
|
|
||||||
WARN: 2016/06/06 00:30:31 site.go:1974: "" is rendered empty
|
|
||||||
0 of 3 drafts rendered
|
|
||||||
0 future content
|
|
||||||
4 pages created
|
|
||||||
18 non-page files copied
|
|
||||||
0 paginator pages created
|
|
||||||
0 tags created
|
|
||||||
0 categories created
|
|
||||||
in 36 ms
|
|
||||||
WARN: 2016/06/06 00:30:31 hugo.go:625: Skip LayoutDir: lstat /docs/layouts: no such file or directory
|
|
||||||
ERROR: 2016/06/06 00:30:31 hugo.go:629: Walker: lstat /docs/static: no such file or directory
|
|
||||||
Watching for changes in /docs/{data,content,themes}
|
|
||||||
WARN: 2016/06/06 00:30:31 hugo.go:625: Skip LayoutDir: lstat /docs/layouts: no such file or directory
|
|
||||||
ERROR: 2016/06/06 00:30:31 hugo.go:629: Walker: lstat /docs/static: no such file or directory
|
|
||||||
Serving pages from memory
|
|
||||||
Web Server is available at http://localhost:8000/ (bind address 0.0.0.0)
|
|
||||||
Press Ctrl+C to stop
|
|
||||||
```
|
|
16
test/menu.md
16
test/menu.md
|
@ -1,16 +0,0 @@
|
||||||
---
|
|
||||||
description: test menu
|
|
||||||
draft: true
|
|
||||||
keywords:
|
|
||||||
- docker, documentation, about, technology, understanding, release
|
|
||||||
menu:
|
|
||||||
main:
|
|
||||||
identifier: mn_test
|
|
||||||
weight: 9
|
|
||||||
title: Test menu
|
|
||||||
type: menu
|
|
||||||
---
|
|
||||||
|
|
||||||
# Menu topic
|
|
||||||
|
|
||||||
If you can view this content, please raise a bug report.
|
|
|
@ -1,14 +0,0 @@
|
||||||
---
|
|
||||||
advisory: rc
|
|
||||||
description: test index page
|
|
||||||
draft: true
|
|
||||||
keywords:
|
|
||||||
- docker, documentation, about, technology, understanding, release
|
|
||||||
menu:
|
|
||||||
main:
|
|
||||||
parent: mn_test
|
|
||||||
title: RC Test index page
|
|
||||||
---
|
|
||||||
|
|
||||||
# rc test index page
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2014 YOUR_NAME_HERE
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
||||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
||||||
subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
||||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
||||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
||||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
||||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
Binary file not shown.
|
@ -1,56 +0,0 @@
|
||||||
{{ partial "header.html" (dict "thispage" . "errorpage" true) }}
|
|
||||||
<section class="title_section darkblue">
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<div class="">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-3 col-md-2 docsidebarnav_section">
|
|
||||||
{{ partial "navbar.html" . }}
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-9 col-md-10">
|
|
||||||
<section class="section" id="DocumentationText">
|
|
||||||
<h1 style="padding-top:15px;" id="title">{{ .Title }}</h1>
|
|
||||||
<p style="color:#3A4E55;">The page you wanted cannot be found or is no longer available.</p>
|
|
||||||
<p>Can we help you find what you're looking for? Use the <a href="/index.html">sitemap to navigate</a>
|
|
||||||
directly or send email to <a href="mailto:docs@docker.com">docs@docker.com</a> for additional help.</p>
|
|
||||||
|
|
||||||
<input type="text" id="search-box" name="q" />
|
|
||||||
|
|
||||||
<span class="ds-dropdown-menu ds-with-0" style="top: 100%; z-index: 100; left: 0px; right: auto; display: block;"><div class="algolia-autocomplete"> <div class="ds-dataset-0">
|
|
||||||
<span class="ds-suggestions" style="display: block;">
|
|
||||||
<div class="ds-suggestion">
|
|
||||||
<div class="algolia-docsearch-suggestion algolia-docsearch-suggestion__main algolia-docsearch-suggestion__secondary " style="white-space: normal;" id="hits-container"></div>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
</div> </div> </span>
|
|
||||||
<div id="pagination-container"></div>
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/instantsearch.js/1/instantsearch.min.css">
|
|
||||||
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css">
|
|
||||||
<script src="//cdn.jsdelivr.net/instantsearch.js/1/instantsearch.min.js"></script>
|
|
||||||
<script async src="/search.js"></script>
|
|
||||||
<style>
|
|
||||||
/* bring up the content divs so users can see the URL being suggested, and click on them */
|
|
||||||
.algolia-autocomplete .algolia-docsearch-suggestion--content {
|
|
||||||
z-index: 9999;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<a class="exit-off-canvas"></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="moby_footer">
|
|
||||||
<i class="bar"></i>
|
|
||||||
<i class="moby"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{ partial "footer.html" . }}
|
|
|
@ -1,43 +0,0 @@
|
||||||
{{ partial "header.html" (dict "thispage" . "errorpage" false) }}
|
|
||||||
<section class="title_section darkblue">
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<div id="DockerDocumentation">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-3 col-md-2 docsidebarnav_section">
|
|
||||||
{{ partial "navbar.html" . }}
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-9 col-md-{{ if .Params.notoc }}10{{else}}8{{end}}">
|
|
||||||
<section class="section" id="DocumentationText">
|
|
||||||
{{ partial "advisory.html" . }}
|
|
||||||
{{ .Content }}
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
{{ if not .Params.notoc }}
|
|
||||||
<div class="hidden-xs hidden-sm col-md-2 tableofcontents_section">
|
|
||||||
<section class="section" id="TableOfContentsSection">
|
|
||||||
<span class="title_section">
|
|
||||||
<form class="search-form form-inline ng-pristine ng-valid" action="/search/">
|
|
||||||
<input class="search-field form-control" id="st-search-input" value="" name="q" placeholder="Search the docs" type="search">
|
|
||||||
<button type="submit" class="search-submit btn btn-default">Search</button>
|
|
||||||
</form>
|
|
||||||
</span>
|
|
||||||
<span class="heading">On this page</span>
|
|
||||||
{{ .TableOfContents }}
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<a class="exit-off-canvas"></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="moby_footer">
|
|
||||||
<i class="bar"></i>
|
|
||||||
<i class="moby"></i>
|
|
||||||
</div>
|
|
||||||
{{ partial "footer.html" . }}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{{ partial "header.html" . }}
|
|
||||||
<div id="docs" class="row">
|
|
||||||
<div class="large-12 columns">
|
|
||||||
<section id="main">
|
|
||||||
<article id="content">
|
|
||||||
{{ .Content }}
|
|
||||||
</article>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{ partial "container-footer.html" . }}
|
|
||||||
{{ partial "footer.html" . }}
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
{{ partial "header.html" (dict "thispage" . "errorpage" false) }}
|
|
||||||
<section class="title_section darkblue">
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<div class="">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-3 col-md-2 docsidebarnav_section">
|
|
||||||
{{ partial "navbar.html" . }}
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-9 col-md-10">
|
|
||||||
<section class="section projects_items_section GenericDev" id="DocumentationText">
|
|
||||||
{{ range where .Data.Pages "Title" "Welcome to the Docker Documentation" }}
|
|
||||||
<p>{{ .Content }}</p>
|
|
||||||
{{ end }}
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a class="exit-off-canvas"></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="moby_footer">
|
|
||||||
<i class="bar"></i>
|
|
||||||
<i class="moby"></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
{{ partial "footer.html" . }}
|
|
|
@ -1,10 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>redirect to index</title>
|
|
||||||
<link rel="canonical" href="../"/>
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
|
||||||
<meta http-equiv="refresh" content="0; url=../"/>
|
|
||||||
</head>
|
|
||||||
</html>
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
{{ partial "header.html" . }}
|
|
||||||
<div id="docs" class="row">
|
|
||||||
<div class="large-3 columns" class="tutmenu">
|
|
||||||
{{ partial "microsite-navbar.html" . }}
|
|
||||||
</div>
|
|
||||||
<div class="large-9 columns">
|
|
||||||
<section id="main">
|
|
||||||
<article id="content" class="tutorial">
|
|
||||||
<div class="microsite" >
|
|
||||||
{{ .Content }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{ partial "container-footer.html" . }}
|
|
||||||
{{ partial "footer.html" . }}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{{ $advisories := .Site.Data.advisories }}
|
|
||||||
{{ if isset $.Params "advisory" }}
|
|
||||||
<p class="advisory bg-warning">
|
|
||||||
<strong>Advisory</strong>:
|
|
||||||
{{ index $advisories.texts $.Params.advisory | default $.Params.advisory | markdownify }}
|
|
||||||
</p>
|
|
||||||
{{ else }}
|
|
||||||
{{ $url := .RelPermalink }}
|
|
||||||
{{ range $key, $value := $advisories.paths }}
|
|
||||||
{{ if hasPrefix $url $key }}
|
|
||||||
<p class="advisory bg-warning advisory-{{ $value }}">
|
|
||||||
<strong>Advisory</strong>:
|
|
||||||
{{ index $advisories.texts $value | default $value | markdownify }}
|
|
||||||
</p>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
|
@ -1,319 +0,0 @@
|
||||||
<!-- Start Footer -->
|
|
||||||
<footer class="main-footer">
|
|
||||||
<div class="row">
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
</div>
|
|
||||||
<div id="buildinfo">
|
|
||||||
{{ .Now.Format "Jan 2, 2006 at 3:04pm (PST)" }}
|
|
||||||
BUILD_DATA
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
<link rel="stylesheet" href="/highlight/styles/github.css">
|
|
||||||
<script src="/highlight/highlight.pack.js"></script>
|
|
||||||
<script>hljs.initHighlightingOnLoad();</script>
|
|
||||||
|
|
||||||
<script src="/dist/assets/js/all.js"></script>
|
|
||||||
<script>
|
|
||||||
$( 'nav li:has(ul)' ).doubleTapToGo();
|
|
||||||
</script>
|
|
||||||
<script>
|
|
||||||
|
|
||||||
;(function ( $, window, document, undefined ) {
|
|
||||||
|
|
||||||
var pluginName = 'accordion',
|
|
||||||
defaults = {
|
|
||||||
transitionSpeed: 300,
|
|
||||||
transitionEasing: 'ease',
|
|
||||||
controlElement: '[data-control]',
|
|
||||||
contentElement: '[data-content]',
|
|
||||||
groupElement: '[data-accordion-group]',
|
|
||||||
singleOpen: true
|
|
||||||
};
|
|
||||||
|
|
||||||
function Accordion(element, options) {
|
|
||||||
this.element = element;
|
|
||||||
this.options = $.extend({}, defaults, options);
|
|
||||||
this._defaults = defaults;
|
|
||||||
this._name = pluginName;
|
|
||||||
this.init();
|
|
||||||
}
|
|
||||||
|
|
||||||
Accordion.prototype.init = function () {
|
|
||||||
var self = this,
|
|
||||||
opts = self.options;
|
|
||||||
|
|
||||||
var $accordion = $(self.element),
|
|
||||||
$controls = $accordion.find('> ' + opts.controlElement),
|
|
||||||
$content = $accordion.find('> ' + opts.contentElement);
|
|
||||||
|
|
||||||
var accordionParentsQty = $accordion.parents('[data-accordion]').length,
|
|
||||||
accordionHasParent = accordionParentsQty > 0;
|
|
||||||
|
|
||||||
var closedCSS = { 'max-height': 0, 'overflow': 'hidden' };
|
|
||||||
|
|
||||||
var CSStransitions = supportsTransitions();
|
|
||||||
|
|
||||||
function debounce(func, threshold, execAsap) {
|
|
||||||
var timeout;
|
|
||||||
|
|
||||||
return function debounced() {
|
|
||||||
var obj = this,
|
|
||||||
args = arguments;
|
|
||||||
|
|
||||||
function delayed() {
|
|
||||||
if (!execAsap) func.apply(obj, args);
|
|
||||||
timeout = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (timeout) clearTimeout(timeout);
|
|
||||||
else if (execAsap) func.apply(obj, args);
|
|
||||||
|
|
||||||
timeout = setTimeout(delayed, threshold || 100);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function supportsTransitions() {
|
|
||||||
var b = document.body || document.documentElement,
|
|
||||||
s = b.style,
|
|
||||||
p = 'transition';
|
|
||||||
|
|
||||||
if (typeof s[p] == 'string') {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
var v = ['Moz', 'webkit', 'Webkit', 'Khtml', 'O', 'ms'];
|
|
||||||
|
|
||||||
p = 'Transition';
|
|
||||||
|
|
||||||
for (var i=0; i<v.length; i++) {
|
|
||||||
if (typeof s[v[i] + p] == 'string') {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function requestAnimFrame(cb) {
|
|
||||||
if(window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame) {
|
|
||||||
return requestAnimationFrame(cb) ||
|
|
||||||
webkitRequestAnimationFrame(cb) ||
|
|
||||||
mozRequestAnimationFrame(cb);
|
|
||||||
} else {
|
|
||||||
return setTimeout(cb, 1000 / 60);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleTransition($el, remove) {
|
|
||||||
if(!remove) {
|
|
||||||
$content.css({
|
|
||||||
'-webkit-transition': 'max-height ' + opts.transitionSpeed + 'ms ' + opts.transitionEasing,
|
|
||||||
'transition': 'max-height ' + opts.transitionSpeed + 'ms ' + opts.transitionEasing
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
$content.css({
|
|
||||||
'-webkit-transition': '',
|
|
||||||
'transition': ''
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function calculateHeight($el) {
|
|
||||||
var height = 0;
|
|
||||||
|
|
||||||
$el.children().each(function() {
|
|
||||||
height = height + $(this).outerHeight(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
$el.data('oHeight', height);
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateParentHeight($parentAccordion, $currentAccordion, qty, operation) {
|
|
||||||
var $content = $parentAccordion.filter('.open').find('> [data-content]'),
|
|
||||||
$childs = $content.find('[data-accordion].open > [data-content]'),
|
|
||||||
$matched;
|
|
||||||
|
|
||||||
if(!opts.singleOpen) {
|
|
||||||
$childs = $childs.not($currentAccordion.siblings('[data-accordion].open').find('> [data-content]'));
|
|
||||||
}
|
|
||||||
|
|
||||||
$matched = $content.add($childs);
|
|
||||||
|
|
||||||
if($parentAccordion.hasClass('open')) {
|
|
||||||
$matched.each(function() {
|
|
||||||
var currentHeight = $(this).data('oHeight');
|
|
||||||
|
|
||||||
switch (operation) {
|
|
||||||
case '+':
|
|
||||||
$(this).data('oHeight', currentHeight + qty);
|
|
||||||
break;
|
|
||||||
case '-':
|
|
||||||
$(this).data('oHeight', currentHeight - qty);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw 'updateParentHeight method needs an operation';
|
|
||||||
}
|
|
||||||
|
|
||||||
$(this).css('max-height', $(this).data('oHeight'));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function refreshHeight($accordion) {
|
|
||||||
if($accordion.hasClass('open')) {
|
|
||||||
var $content = $accordion.find('> [data-content]'),
|
|
||||||
$childs = $content.find('[data-accordion].open > [data-content]'),
|
|
||||||
$matched = $content.add($childs);
|
|
||||||
|
|
||||||
calculateHeight($matched);
|
|
||||||
|
|
||||||
$matched.css('max-height', $matched.data('oHeight'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function closeAccordion($accordion, $content) {
|
|
||||||
$accordion.trigger('accordion.close');
|
|
||||||
|
|
||||||
if(CSStransitions) {
|
|
||||||
if(accordionHasParent) {
|
|
||||||
var $parentAccordions = $accordion.parents('[data-accordion]');
|
|
||||||
|
|
||||||
updateParentHeight($parentAccordions, $accordion, $content.data('oHeight'), '-');
|
|
||||||
}
|
|
||||||
|
|
||||||
$content.css(closedCSS);
|
|
||||||
|
|
||||||
$accordion.removeClass('open');
|
|
||||||
} else {
|
|
||||||
$content.css('max-height', $content.data('oHeight'));
|
|
||||||
|
|
||||||
$content.animate(closedCSS, opts.transitionSpeed);
|
|
||||||
|
|
||||||
$accordion.removeClass('open');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function openAccordion($accordion, $content) {
|
|
||||||
$accordion.trigger('accordion.open');
|
|
||||||
if(CSStransitions) {
|
|
||||||
toggleTransition($content);
|
|
||||||
|
|
||||||
if(accordionHasParent) {
|
|
||||||
var $parentAccordions = $accordion.parents('[data-accordion]');
|
|
||||||
|
|
||||||
updateParentHeight($parentAccordions, $accordion, $content.data('oHeight'), '+');
|
|
||||||
}
|
|
||||||
|
|
||||||
requestAnimFrame(function() {
|
|
||||||
$content.css('max-height', $content.data('oHeight'));
|
|
||||||
});
|
|
||||||
|
|
||||||
$accordion.addClass('open');
|
|
||||||
} else {
|
|
||||||
$content.animate({
|
|
||||||
'max-height': $content.data('oHeight')
|
|
||||||
}, opts.transitionSpeed, function() {
|
|
||||||
$content.css({'max-height': 'none'});
|
|
||||||
});
|
|
||||||
|
|
||||||
$accordion.addClass('open');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function closeSiblingAccordions($accordion) {
|
|
||||||
var $accordionGroup = $accordion.closest(opts.groupElement);
|
|
||||||
|
|
||||||
var $siblings = $accordion.siblings('[data-accordion]').filter('.open'),
|
|
||||||
$siblingsChildren = $siblings.find('[data-accordion]').filter('.open');
|
|
||||||
|
|
||||||
var $otherAccordions = $siblings.add($siblingsChildren);
|
|
||||||
|
|
||||||
$otherAccordions.each(function() {
|
|
||||||
var $accordion = $(this),
|
|
||||||
$content = $accordion.find(opts.contentElement);
|
|
||||||
|
|
||||||
closeAccordion($accordion, $content);
|
|
||||||
});
|
|
||||||
|
|
||||||
$otherAccordions.removeClass('open');
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleAccordion() {
|
|
||||||
var isAccordionGroup = (opts.singleOpen) ? $accordion.parents(opts.groupElement).length > 0 : false;
|
|
||||||
|
|
||||||
calculateHeight($content);
|
|
||||||
|
|
||||||
if(isAccordionGroup) {
|
|
||||||
closeSiblingAccordions($accordion);
|
|
||||||
}
|
|
||||||
|
|
||||||
if($accordion.hasClass('open')) {
|
|
||||||
closeAccordion($accordion, $content);
|
|
||||||
} else {
|
|
||||||
openAccordion($accordion, $content);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function addEventListeners() {
|
|
||||||
$controls.on('click', toggleAccordion);
|
|
||||||
|
|
||||||
$controls.on('accordion.toggle', function() {
|
|
||||||
if(opts.singleOpen && $controls.length > 1) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
toggleAccordion();
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window).on('resize', debounce(function() {
|
|
||||||
refreshHeight($accordion);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
function setup() {
|
|
||||||
$content.each(function() {
|
|
||||||
var $curr = $(this);
|
|
||||||
|
|
||||||
if($curr.css('max-height') != 0) {
|
|
||||||
if(!$curr.closest('[data-accordion]').hasClass('open')) {
|
|
||||||
$curr.css({ 'max-height': 0, 'overflow': 'hidden' });
|
|
||||||
} else {
|
|
||||||
toggleTransition($curr);
|
|
||||||
calculateHeight($curr);
|
|
||||||
|
|
||||||
$curr.css('max-height', $curr.data('oHeight'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
if(!$accordion.attr('data-accordion')) {
|
|
||||||
$accordion.attr('data-accordion', '');
|
|
||||||
$accordion.find(opts.controlElement).attr('data-control', '');
|
|
||||||
$accordion.find(opts.contentElement).attr('data-content', '');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setup();
|
|
||||||
addEventListeners();
|
|
||||||
};
|
|
||||||
|
|
||||||
$.fn[pluginName] = function ( options ) {
|
|
||||||
return this.each(function () {
|
|
||||||
if (!$.data(this, 'plugin_' + pluginName)) {
|
|
||||||
$.data(this, 'plugin_' + pluginName,
|
|
||||||
new Accordion( this, options ));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
})( jQuery, window, document );
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('#multiple [data-accordion]').accordion({
|
|
||||||
singleOpen: false
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
|
@ -1,105 +0,0 @@
|
||||||
<footer class="main_footer">
|
|
||||||
<div class="container">
|
|
||||||
<div class="top_footer">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-5 col-md-5 col-sm-push-3 col-md-push-3">
|
|
||||||
<h6>Connect</h6>
|
|
||||||
<p>Subscribe to our newsletter</p>
|
|
||||||
<div class=" newsletter">
|
|
||||||
<script src="//app-sj05.marketo.com/js/forms2/js/forms2.min.js"></script>
|
|
||||||
<form id="mktoForm_1038"></form>
|
|
||||||
<script>
|
|
||||||
MktoForms2.loadForm("//app-sj05.marketo.com", "929-FJL-178", 1038, function(form) {
|
|
||||||
form.onSuccess(function(values, followUpUrl) {
|
|
||||||
location.href = "https://www.docker.com/thank-you-subscribing-docker-weekly";
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
MktoForms2.whenReady(function(form){
|
|
||||||
/* $('#mktoForm_1038 #Email').attr('placeholder', 'Enter your email'); */
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</div>
|
|
||||||
<ul class="social-icons">
|
|
||||||
<li class="facebook"><a target="_blank" href="https://www.facebook.com/docker.run">facebook</a></li>
|
|
||||||
<li class="google"><a target="_blank" href="https://plus.google.com/u/0/communities/108146856671494713993">google-plus</a></li>
|
|
||||||
<li class="github"><a target="_blank" href="https://github.com/docker/docker">github</a></li>
|
|
||||||
<li class="linkedin"><a target="_blank" href="https://www.linkedin.com/company/docker">linkedin</a></li>
|
|
||||||
<li class="youtube"><a target="_blank" href="https://www.youtube.com/user/dockerrun">youtube</a></li>
|
|
||||||
<li class="reddit"><a target="_blank" href="https://www.reddit.com/r/docker">reddit</a></li>
|
|
||||||
<li class="twitter"><a target="_blank" href="https://twitter.com/docker">twitter</a></li>
|
|
||||||
<li class="slideshare"><a target="_blank" href="http://www.slideshare.net/docker">slideshare</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-3 col-md-3 col-sm-pull-5 col-md-pull-5 sm-margin-top-40">
|
|
||||||
<h6>Docker</h6>
|
|
||||||
<ul class="menu"><li class="first leaf menu-mlid-1487"><a href="/engine/getstarted/" target="_blank">Get Started</a></li>
|
|
||||||
<li class="leaf menu-mlid-1488"><a href="https://docs.docker.com/" target="_blank">Docs</a></li>
|
|
||||||
<li class="leaf menu-mlid-1490"><a href="https://blog.docker.com/" target="_blank">Blog</a></li>
|
|
||||||
<li class="leaf menu-mlid-1491"><a href="https://training.docker.com/" target="_blank">Training</a></li>
|
|
||||||
<li class="last leaf menu-mlid-1492"><a href="https://www.docker.com/open-source">Open Source</a></li>
|
|
||||||
</ul> </div>
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-4 sm-margin-top-40">
|
|
||||||
<h6>Related Links</h6>
|
|
||||||
<!--8c60a82e716c2bbe785434e072d7ff1b--> <ul id="cp_links"> <li><a href="https://www.docker.com/cp/container-management-deployment">Container Management Deployment</a></li> <li><a href="https://www.docker.com/cp/docker-and-aws">Docker And Aws</a></li> <li><a href="https://www.docker.com/cp/container-management-orchestration">Container Management Orchestration</a></li> <li><a href="https://www.docker.com/cp/docker-and-kubernetes">Docker And Kubernetes</a></li> <li><a href="https://www.docker.com/cp/container-orchestration-engines">Container Orchestration Engines</a></li> </ul> <div id="block-block-5" class="block block-block">
|
|
||||||
</div> </div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="bottom_footer">
|
|
||||||
<div class="footer-nav">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-5 col-md-push-7">
|
|
||||||
<nav class="primary-footer-sub-nav">
|
|
||||||
<ul>
|
|
||||||
<li><a href="https://www.docker.com/products/docker-hub">Hub</a></li>
|
|
||||||
<li><a href="https://status.docker.com/">Status</a></li>
|
|
||||||
<li><a href="https://www.docker.com/docker-security">Security</a></li>
|
|
||||||
<li><a href="https://www.docker.com/legal">Legal</a></li>
|
|
||||||
<li><a href="https://goto.docker.com/sales-inquiry.html">Contact</a></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-7 col-md-pull-5">
|
|
||||||
<p>Build, Ship, Run. An open platform for distributed applications for developers and sysadmins</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer-copyright">
|
|
||||||
<p class="copyright">Copyright © 2016 Docker Inc. All rights reserved.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
<!-- highlight.js -->
|
|
||||||
<link rel="stylesheet" href="/highlight/styles/github.css">
|
|
||||||
<script src="/highlight/highlight.pack.js"></script>
|
|
||||||
<script>hljs.initHighlightingOnLoad();</script>
|
|
||||||
|
|
||||||
<script src="/assets/js/alljs.js"></script>
|
|
||||||
<!-- doc menu -->
|
|
||||||
<script async src="/menu.js"></script>
|
|
||||||
<script async src="/assets/js/app.js"></script>
|
|
||||||
<script async src="/assets/js/anchorlinks.js"></script>
|
|
||||||
|
|
||||||
<!-- Google Tag Manager -->
|
|
||||||
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-WLGFZV" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
|
||||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
||||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
||||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
||||||
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
||||||
})(window,document,'script','dataLayer','GTM-WLGFZV');</script>
|
|
||||||
<!-- End Google Tag Manager -->
|
|
||||||
{{ if not .Params.notoc }}
|
|
||||||
<!-- Algolia DocSearch -->
|
|
||||||
<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script>
|
|
||||||
<script type="text/javascript"> docsearch({
|
|
||||||
apiKey: '828e35034e76dbb6fdc5b33c03d5702f',
|
|
||||||
indexName: 'docker',
|
|
||||||
autoSelect: false,
|
|
||||||
inputSelector: '#st-search-input',
|
|
||||||
debug: false
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
{{end}}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,123 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html class="no-js" lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript">window.NREUM||(NREUM={}),__nr_require=function(e,t,n){function r(n){if(!t[n]){var o=t[n]={exports:{}};e[n][0].call(o.exports,function(t){var o=e[n][1][t];return r(o||t)},o,o.exports)}return t[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(e,t,n){function r(e,t){return function(){o(e,[(new Date).getTime()].concat(a(arguments)),null,t)}}var o=e("handle"),i=e(2),a=e(3);"undefined"==typeof window.newrelic&&(newrelic=NREUM);var u=["setPageViewName","setCustomAttribute","finished","addToTrace","inlineHit"],c=["addPageAction"],f="api-";i(u,function(e,t){newrelic[t]=r(f+t,"api")}),i(c,function(e,t){newrelic[t]=r(f+t)}),t.exports=newrelic,newrelic.noticeError=function(e){"string"==typeof e&&(e=new Error(e)),o("err",[e,(new Date).getTime()])}},{}],2:[function(e,t,n){function r(e,t){var n=[],r="",i=0;for(r in e)o.call(e,r)&&(n[i]=t(r,e[r]),i+=1);return n}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],3:[function(e,t,n){function r(e,t,n){t||(t=0),"undefined"==typeof n&&(n=e?e.length:0);for(var r=-1,o=n-t||0,i=Array(0>o?0:o);++r<o;)i[r]=e[t+r];return i}t.exports=r},{}],ee:[function(e,t,n){function r(){}function o(e){function t(e){return e&&e instanceof r?e:e?u(e,a,i):i()}function n(n,r,o){e&&e(n,r,o);for(var i=t(o),a=l(n),u=a.length,c=0;u>c;c++)a[c].apply(i,r);var s=f[g[n]];return s&&s.push([m,n,r,i]),i}function p(e,t){w[e]=l(e).concat(t)}function l(e){return w[e]||[]}function d(e){return s[e]=s[e]||o(n)}function v(e,t){c(e,function(e,n){t=t||"feature",g[n]=t,t in f||(f[t]=[])})}var w={},g={},m={on:p,emit:n,get:d,listeners:l,context:t,buffer:v};return m}function i(){return new r}var a="nr@context",u=e("gos"),c=e(2),f={},s={},p=t.exports=o();p.backlog=f},{}],gos:[function(e,t,n){function r(e,t,n){if(o.call(e,t))return e[t];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return e[t]=r,r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],handle:[function(e,t,n){function r(e,t,n,r){o.buffer([e],r),o.emit(e,t,n)}var o=e("ee").get("handle");t.exports=r,r.ee=o},{}],id:[function(e,t,n){function r(e){var t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===window?0:a(e,i,function(){return o++})}var o=1,i="nr@id",a=e("gos");t.exports=r},{}],loader:[function(e,t,n){function r(){if(!w++){var e=v.info=NREUM.info,t=s.getElementsByTagName("script")[0];if(e&&e.licenseKey&&e.applicationID&&t){c(l,function(t,n){e[t]||(e[t]=n)});var n="https"===p.split(":")[0]||e.sslForHttp;v.proto=n?"https://":"http://",u("mark",["onload",a()],null,"api");var r=s.createElement("script");r.src=v.proto+e.agent,t.parentNode.insertBefore(r,t)}}}function o(){"complete"===s.readyState&&i()}function i(){u("mark",["domContent",a()],null,"api")}function a(){return(new Date).getTime()}var u=e("handle"),c=e(2),f=window,s=f.document;NREUM.o={ST:setTimeout,CT:clearTimeout,XHR:f.XMLHttpRequest,REQ:f.Request,EV:f.Event,PR:f.Promise,MO:f.MutationObserver},e(1);var p=""+location,l={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-943.min.js"},d=window.XMLHttpRequest&&XMLHttpRequest.prototype&&XMLHttpRequest.prototype.addEventListener&&!/CriOS/.test(navigator.userAgent),v=t.exports={offset:a(),origin:p,features:{},xhrWrappable:d};s.addEventListener?(s.addEventListener("DOMContentLoaded",i,!1),f.addEventListener("load",r,!1)):(s.attachEvent("onreadystatechange",o),f.attachEvent("onload",r)),u("mark",["firstbyte",a()],null,"api");var w=0},{}]},{},["loader"]);</script>
|
|
||||||
<meta name="keywords" content="docker, docker open source, docker platform, distributed applications, microservices, containers, docker containers, docker software, docker virtualization" />
|
|
||||||
<meta property="og:site_name" content="Docker" />
|
|
||||||
<meta property="og:type" content="website" />
|
|
||||||
<meta property="og:title" content="{{ .thispage.Title }}" />
|
|
||||||
<meta property="og:updated_time" content="2016-06-07T22:58:05-07:00" />
|
|
||||||
<meta property="og:image" content="https://www.docker.com/sites/default/files/social/docker-facebook-share.png" />
|
|
||||||
<meta name="twitter:card" content="summary_large_image" />
|
|
||||||
<meta name="twitter:site" content="@docker_docs" />
|
|
||||||
<meta name="twitter:url" content="https://twitter.com/docker_docs" />
|
|
||||||
<meta name="twitter:title" content="Docs team" />
|
|
||||||
<meta name="twitter:image:src" content="https://www.docker.com/sites/default/files/social/docker-twitter-share.png" />
|
|
||||||
<meta property="article:published_time" content="2016-05-30T01:18:23-07:00" />
|
|
||||||
<meta property="article:modified_time" content="2016-06-07T22:58:05-07:00" />
|
|
||||||
<meta charset="utf-8"/>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>{{ .thispage.Title }}</title>{{ if .errorpage }}
|
|
||||||
<base href="/">{{ end }}
|
|
||||||
<meta name="description" content="{{ with .thispage.Description }}{{ . }}{{ else }}{{ with .thispage.Site.Params.description }}{{ . }}{{ end }}{{ end }}">
|
|
||||||
<meta name="keywords" content="{{ with .thispage.Keywords }}{{ range . }}{{ . }}{{ end }}{{ else }}{{ with .thispage.Site.Params.keywords }}{{ . }}{{ end }}{{ end }}">
|
|
||||||
<link rel="apple-touch-icon" sizes="57x57" href="/favicons/apple-touch-icon-57x57.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="60x60" href="/favicons/apple-touch-icon-60x60.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="72x72" href="/favicons/apple-touch-icon-72x72.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon-76x76.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="114x114" href="/favicons/apple-touch-icon-114x114.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon-120x120.png">
|
|
||||||
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
|
|
||||||
<link rel="icon" type="image/png" href="/favicons/favicon-96x96.png" sizes="96x96">
|
|
||||||
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
|
|
||||||
<link rel="manifest" href="/favicons/manifest.json">
|
|
||||||
<meta name="msapplication-TileColor" content="#da532c">
|
|
||||||
<meta name="theme-color" content="#ffffff">
|
|
||||||
<link rel="stylesheet" href="/assets/css/allcss.css" />
|
|
||||||
<link rel="stylesheet" href="/assets/css/app2.css" />
|
|
||||||
<link rel="stylesheet" href="/assets/css/responsive.css" />
|
|
||||||
<link rel="stylesheet" href="/assets/css/p2p.css" />
|
|
||||||
<link rel="stylesheet" href="/assets/css/mobile_responsive.css" />
|
|
||||||
<link rel="stylesheet" href="/assets/css/temporary.css" />
|
|
||||||
<link rel="stylesheet" href="/documentation.css" />
|
|
||||||
<script async src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>
|
|
||||||
<!-- Algolia DocSearch -->
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css" />
|
|
||||||
</head>
|
|
||||||
<body class="html front not-logged-in no-sidebars page-node page-node- page-node-1 node-type-front-page path-docker" ng-app="Docker" ng-controller="DockerController">
|
|
||||||
<div class="off-canvas-wrap" data-offcanvas>
|
|
||||||
<div class="inner-wrap">
|
|
||||||
<a class="left-off-canvas-toggle" href="#">
|
|
||||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="35px" height="35px" viewBox="0 0 35 35" enable-background="new 0 0 35 35" xml:space="preserve">
|
|
||||||
<path fill="#fff" d="M30.583,9.328c0,0.752-0.539,1.362-1.203,1.362H5.113c-0.664,0-1.203-0.61-1.203-1.362l0,0
|
|
||||||
c0-0.752,0.539-1.362,1.203-1.362H29.38C30.045,7.966,30.583,8.576,30.583,9.328L30.583,9.328z" />
|
|
||||||
<path fill="#fff" d="M30.583,17.09c0,0.752-0.539,1.362-1.203,1.362H5.113c-0.664,0-1.203-0.61-1.203-1.362l0,0
|
|
||||||
c0-0.752,0.539-1.362,1.203-1.362H29.38C30.045,15.728,30.583,16.338,30.583,17.09L30.583,17.09z" />
|
|
||||||
<path fill="#fff" d="M30.583,24.387c0,0.752-0.539,1.362-1.203,1.362H5.113c-0.664,0-1.203-0.61-1.203-1.362l0,0
|
|
||||||
c0-0.752,0.539-1.362,1.203-1.362H29.38C30.045,23.025,30.583,23.635,30.583,24.387L30.583,24.387z" />
|
|
||||||
</svg>
|
|
||||||
</a>
|
|
||||||
<header class="main-header">
|
|
||||||
<div class="top-right-bg"></div>
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-2">
|
|
||||||
<a href="/"><img class="logo" src="/assets/images/logo-docker-main.png"></a>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-10">
|
|
||||||
<ul class="nav-global"><li class="first leaf menu-mlid-603"><a href="https://docs.docker.com/" target="_blank">Docs</a></li>
|
|
||||||
<li class="leaf menu-mlid-1997"><a href="https://www.docker.com/community/events">Events</a></li>
|
|
||||||
<li class="leaf menu-mlid-1998"><a href="https://www.docker.com/docker-community">Community</a></li>
|
|
||||||
<li class="leaf menu-mlid-1999"><a href="https://www.docker.com/docker-support-services">Support</a></li>
|
|
||||||
<li class="leaf menu-mlid-402"><a href="https://training.docker.com/" target="_blank">Training</a></li>
|
|
||||||
<li class="leaf menu-mlid-2000"><a href="https://www.docker.com/partners/partner-program">Partners</a></li>
|
|
||||||
<li class="leaf menu-mlid-602"><a href="https://blog.docker.com/" target="_blank">Blog</a></li>
|
|
||||||
<li class="leaf menu-mlid-2001"><a href="https://cloud.docker.com/login/" target="_blank">Log-In</a></li>
|
|
||||||
<li class="last leaf menu-mlid-2002"><a href="https://cloud.docker.com/" target="_blank">Sign-up</a></li>
|
|
||||||
</ul><ul class="nav-main"><li class="first leaf menu-mlid-398"><a href="https://www.docker.com/what-docker">What is Docker?</a></li>
|
|
||||||
<li class="expanded menu-mlid-1059 has-submenu"><a href="https://www.docker.com/enterprise">Solutions</a><ul class="nav-main"><li class="first leaf menu-mlid-1064"><a href="https://www.docker.com/enterprise">Solutions</a></li>
|
|
||||||
<li class="leaf menu-mlid-2365"><a href="https://www.docker.com/enterprise">Overview</a></li>
|
|
||||||
<li class="collapsed menu-mlid-993"><a href="https://www.docker.com/use-cases">Use Cases</a></li>
|
|
||||||
<li class="leaf menu-mlid-1034"><a href="https://www.docker.com/customers">Customers</a></li>
|
|
||||||
<li class="leaf menu-mlid-1587"><a href="https://www.docker.com/industry-government">For Government</a></li>
|
|
||||||
<li class="last collapsed menu-mlid-985"><a href="https://www.docker.com/products/resources">Resources</a></li>
|
|
||||||
</ul></li>
|
|
||||||
<li class="leaf menu-mlid-954"><a href="https://www.docker.com/products/overview">Get Docker</a></li>
|
|
||||||
<li class="leaf menu-mlid-1055"><a href="https://www.docker.com/pricing">Pricing</a></li>
|
|
||||||
<li class="leaf menu-mlid-2005 double-navstyle secondlast"><a href="https://www.docker.com/technologies/overview">Open Source</a></li>
|
|
||||||
<li class="last expanded menu-mlid-397 has-submenu"><a href="https://www.docker.com/company">Company</a><ul class="nav-main"><li class="first leaf menu-mlid-698"><a href="https://www.docker.com/company">Company</a></li>
|
|
||||||
<li class="leaf menu-mlid-2366"><a href="https://www.docker.com/company">Overview</a></li>
|
|
||||||
<li class="leaf menu-mlid-622"><a href="https://www.docker.com/careers">Careers</a></li>
|
|
||||||
<li class="last leaf menu-mlid-1086"><a href="https://www.docker.com/company/news-and-press">News & Press</a></li>
|
|
||||||
</ul></li>
|
|
||||||
</ul> </div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header> <aside class="left-off-canvas-menu">
|
|
||||||
<ul class="off-canvas-list"><li class="first leaf menu-mlid-398"><a href="https://www.docker.com/what-docker">What is Docker?</a></li>
|
|
||||||
<li class="expanded menu-mlid-1059 has-submenu"><a href="https://www.docker.com/enterprise">Solutions</a><ul class="left-submenu"><li class="back"><a href="#">Back</a></li><li class="first leaf menu-mlid-1064"><a href="https://www.docker.com/enterprise">Solutions</a></li>
|
|
||||||
<li class="leaf menu-mlid-2365"><a href="https://www.docker.com/enterprise">Overview</a></li>
|
|
||||||
<li class="collapsed menu-mlid-993"><a href="https://www.docker.com/use-cases">Use Cases</a></li>
|
|
||||||
<li class="leaf menu-mlid-1034"><a href="https://www.docker.com/customers">Customers</a></li>
|
|
||||||
<li class="leaf menu-mlid-1587"><a href="https://www.docker.com/industry-government">For Government</a></li>
|
|
||||||
<li class="last collapsed menu-mlid-985"><a href="https://www.docker.com/products/resources">Resources</a></li>
|
|
||||||
</ul></li>
|
|
||||||
<li class="leaf menu-mlid-954"><a href="https://www.docker.com/products/overview">Get Docker</a></li>
|
|
||||||
<li class="leaf menu-mlid-1055"><a href="https://www.docker.com/pricing">Pricing</a></li>
|
|
||||||
<li class="leaf menu-mlid-2005 double-navstyle secondlast"><a href="https://www.docker.com/technologies/overview">Open Source</a></li>
|
|
||||||
<li class="last expanded menu-mlid-397 has-submenu"><a href="https://www.docker.com/company">Company</a><ul class="left-submenu"><li class="back"><a href="#">Back</a></li><li class="first leaf menu-mlid-698"><a href="https://www.docker.com/company">Company</a></li>
|
|
||||||
<li class="leaf menu-mlid-2366"><a href="https://www.docker.com/company">Overview</a></li>
|
|
||||||
<li class="leaf menu-mlid-622"><a href="https://www.docker.com/careers">Careers</a></li>
|
|
||||||
<li class="last leaf menu-mlid-1086"><a href="https://www.docker.com/company/news-and-press">News & Press</a></li>
|
|
||||||
</ul></li>
|
|
||||||
</ul><ul class="nav-global-off-canvas"><li class="first leaf menu-mlid-603"><a href="https://docs.docker.com/" target="_blank">Docs</a></li>
|
|
||||||
<li class="leaf menu-mlid-1997"><a href="https://www.docker.com/community/events">Events</a></li>
|
|
||||||
<li class="leaf menu-mlid-1998"><a href="https://www.docker.com/docker-community">Community</a></li>
|
|
||||||
<li class="leaf menu-mlid-1999"><a href="https://www.docker.com/docker-support-services">Support</a></li>
|
|
||||||
<li class="leaf menu-mlid-402"><a href="https://training.docker.com/" target="_blank">Training</a></li>
|
|
||||||
<li class="leaf menu-mlid-2000"><a href="https://www.docker.com/partners/partner-program">Partners</a></li>
|
|
||||||
<li class="leaf menu-mlid-602"><a href="https://blog.docker.com/" target="_blank">Blog</a></li>
|
|
||||||
<li class="leaf menu-mlid-2001"><a href="https://cloud.docker.com/login/" target="_blank">Log-In</a></li>
|
|
||||||
<li class="last leaf menu-mlid-2002"><a href="https://cloud.docker.com/" target="_blank">Sign-up</a></li>
|
|
||||||
</ul></aside>
|
|
||||||
<div class="dockercon16">
|
|
|
@ -1,14 +0,0 @@
|
||||||
<div class="dockercon16_padding"></div>
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-4">
|
|
||||||
<img src="http://moby-docker.pantheonsite.io/sites/default/files/Compose.png">
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-6 col-md-8 textalign-left">
|
|
||||||
<h1>Docker Compose</h1>
|
|
||||||
<p>Docker Compose allows you to define your multi-container application with all of its dependencies in a single
|
|
||||||
file, then spin your application up in a single command.</p>
|
|
||||||
<a class="button orange-btn" target="_blank" href="https://docs.docker.com/compose/install/">Get Compose</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,12 +0,0 @@
|
||||||
<div class="heronav_section">
|
|
||||||
<div class="container">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#overview">Product Overview</a></li>
|
|
||||||
<li><a href="#features">Product Features</a></li>
|
|
||||||
<li><a href="#get-started">Get Started</a></li>
|
|
||||||
<li><a href="#demo">Demo</a></li>
|
|
||||||
<li><a href="#resources">Resources</a></li>
|
|
||||||
<li><a href="/pricing">Pricing</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,55 +0,0 @@
|
||||||
<section id="multiple" class="tutmenu" data-accordion-group>
|
|
||||||
{{ $currentNode := . }}
|
|
||||||
{{ range .Site.Menus.linux }}
|
|
||||||
<section data-accordion>
|
|
||||||
{{ if .HasChildren }}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
{{if .HasChildren}}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
{{if .HasChildren}}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "linux" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "linux" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "linux" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "linux" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
</section>
|
|
||||||
{{end}}
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
$(document).ready(function () {
|
|
||||||
var $activeLink = $('#multiple [data-link].active');
|
|
||||||
var $accordions = $activeLink.parents('article[data-accordion]');
|
|
||||||
$($accordions.get().reverse()).each(function (index, accordion) {
|
|
||||||
var $accordion = $(accordion);
|
|
||||||
var $content = $accordion.find('[data-content]');
|
|
||||||
$accordion.addClass('open');
|
|
||||||
$content.css({'max-height': '100%'});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
|
@ -1,55 +0,0 @@
|
||||||
<section id="multiple" class="tutmenu" data-accordion-group>
|
|
||||||
{{ $currentNode := . }}
|
|
||||||
{{ range .Site.Menus.mac }}
|
|
||||||
<section data-accordion>
|
|
||||||
{{ if .HasChildren }}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
{{if .HasChildren}}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
{{if .HasChildren}}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "mac" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "mac" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "mac" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "mac" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
</section>
|
|
||||||
{{end}}
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
$(document).ready(function () {
|
|
||||||
var $activeLink = $('#multiple [data-link].active');
|
|
||||||
var $accordions = $activeLink.parents('article[data-accordion]');
|
|
||||||
$($accordions.get().reverse()).each(function (index, accordion) {
|
|
||||||
var $accordion = $(accordion);
|
|
||||||
var $content = $accordion.find('[data-content]');
|
|
||||||
$accordion.addClass('open');
|
|
||||||
$content.css({'max-height': '100%'});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
|
@ -1,55 +0,0 @@
|
||||||
<section id="multiple" class="tutmenu" data-accordion-group>
|
|
||||||
{{ $currentNode := . }}
|
|
||||||
{{ $menu := index ( index $.Site.Menus ($.Params.menuname) ) }}{{ $currentNode := . }}{{ range $menu }}
|
|
||||||
<section data-accordion>
|
|
||||||
{{ if .HasChildren }}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
{{if .HasChildren}}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
{{if .HasChildren}}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent $.Params.menuname . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent $.Params.menuname . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent $.Params.menuname . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent $.Params.menuname . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
</section>
|
|
||||||
{{end}}
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
$(document).ready(function () {
|
|
||||||
var $activeLink = $('#multiple [data-link].active');
|
|
||||||
var $accordions = $activeLink.parents('article[data-accordion]');
|
|
||||||
$($accordions.get().reverse()).each(function (index, accordion) {
|
|
||||||
var $accordion = $(accordion);
|
|
||||||
var $content = $accordion.find('[data-content]');
|
|
||||||
$accordion.addClass('open');
|
|
||||||
$content.css({'max-height': '100%'});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
|
@ -1,53 +0,0 @@
|
||||||
<nav class="navbar navbar-default" role="navigation">
|
|
||||||
<!-- Main Menu -->
|
|
||||||
<ul class="tab first-level">
|
|
||||||
{{ $currentNode := . }}
|
|
||||||
{{ range .Site.Menus.main }}
|
|
||||||
{{ if .HasChildren }}
|
|
||||||
<!-- Dropdown-->
|
|
||||||
<li class="{{if $currentNode.HasMenuCurrent "main" . }} active{{end}}">
|
|
||||||
<a href="{{ .URL }}">{{ .Pre }} {{ .Name }} <span class="caret" ></span></a>
|
|
||||||
<!-- Dropdown level 1 -->
|
|
||||||
<ul class="tab second-level">
|
|
||||||
{{ range .Children }}
|
|
||||||
{{if .HasChildren}}
|
|
||||||
<li class="{{if $currentNode.HasMenuCurrent "main" . }} active{{end}}">
|
|
||||||
<a href="{{ .URL }}">{{ .Pre }} </span> {{ .Name }} <span class="caret"></span></a>
|
|
||||||
<!-- Dropdown level 2 -->
|
|
||||||
<ul class="tab third-level">
|
|
||||||
{{ range .Children }}
|
|
||||||
{{if .HasChildren}}
|
|
||||||
<li class="{{if $currentNode.HasMenuCurrent "main" . }} active{{end}}">
|
|
||||||
<a href="{{ .URL }}">{{ .Pre }} </span> {{ .Name }} <span class="caret"></span></a>
|
|
||||||
<!-- Dropdown level 3 -->
|
|
||||||
<ul class="tab fourth-level">
|
|
||||||
{{ range .Children }}
|
|
||||||
<li class="{{if $currentNode.IsMenuCurrent "main" . }} active{{end}}"><a href="{{ .URL }}"> {{ .Name }}</a></li>
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
{{else}}
|
|
||||||
<li class="{{if $currentNode.IsMenuCurrent "main" . }} active{{end}}"><a href="{{ .URL }}"> {{ .Name }} </a></li>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
{{else}}
|
|
||||||
<li class="{{if $currentNode.IsMenuCurrent "main" . }} active{{end}}"><a href="{{ .URL }}"> {{ .Name }} </a></li>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
|
||||||
{{else}}
|
|
||||||
<!-- item is not a list -->
|
|
||||||
<li> <a class="" href="{{ .URL }}">{{ .Pre }}{{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
</li> <!-- 1st level item -->
|
|
||||||
{{end}}
|
|
||||||
</ul> <!-- 1st level list -->
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
$(document).ready(function () {
|
|
||||||
//$('.tab first-level').children().hide();
|
|
||||||
});
|
|
||||||
</script>
|
|
|
@ -1,15 +0,0 @@
|
||||||
{{ $thispage := .thispage }}
|
|
||||||
<ul class="nav-sub">
|
|
||||||
{{ range .menu }}
|
|
||||||
{{ if .HasChildren }}
|
|
||||||
<li class="leaf {{ if $thispage.HasMenuCurrent "main" . }} active{{end}} {{ if $thispage.HasMenuCurrent "main" . }} menu-open {{else}} menu-closed {{end}} ">
|
|
||||||
<a href="" class="expand-menu {{ if $thispage.HasMenuCurrent "main" . }} active{{end}}"><span class="menu-icon" aria-hidden="true"></span> {{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{ partial "navbar-inner.html" (dict "menu" .Children "thispage" $thispage) }}
|
|
||||||
</li>
|
|
||||||
{{ else }}
|
|
||||||
<li class="leaf {{ if $thispage.HasMenuCurrent "main" . }} active{{end}}">
|
|
||||||
<a href="{{ .URL }}" class="{{ if $thispage.IsMenuCurrent "main" . }} active currentPage{{end}}"> {{ .Name }} </a>
|
|
||||||
</li>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
|
|
@ -1,3 +0,0 @@
|
||||||
<div class="region region-hero-sub">
|
|
||||||
{{ partial "navbar-inner.html" (dict "menu" .Site.Menus.main "thispage" . "menuopen" "open") }}
|
|
||||||
</div>
|
|
|
@ -1,55 +0,0 @@
|
||||||
<section id="multiple" class="tutmenu" data-accordion-group>
|
|
||||||
{{ $currentNode := . }}
|
|
||||||
{{ range .Site.Menus.windows }}
|
|
||||||
<section data-accordion>
|
|
||||||
{{ if .HasChildren }}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
{{if .HasChildren}}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
{{if .HasChildren}}
|
|
||||||
<article data-accordion>
|
|
||||||
<button data-control>{{ .Pre }} {{ .Name }}</button>
|
|
||||||
<div data-content>
|
|
||||||
{{ range .Children }}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "windows" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "windows" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "windows" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{{else}}
|
|
||||||
<a data-link href="{{ .URL }}" class="{{if $currentNode.IsMenuCurrent "windows" . }} active{{end}}">{{ .Pre }} {{ .Name }}</a>
|
|
||||||
{{end}}
|
|
||||||
</section>
|
|
||||||
{{end}}
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
$(document).ready(function () {
|
|
||||||
var $activeLink = $('#multiple [data-link].active');
|
|
||||||
var $accordions = $activeLink.parents('article[data-accordion]');
|
|
||||||
$($accordions.get().reverse()).each(function (index, accordion) {
|
|
||||||
var $accordion = $(accordion);
|
|
||||||
var $content = $accordion.find('[data-content]');
|
|
||||||
$accordion.addClass('open');
|
|
||||||
$content.css({'max-height': '100%'});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
|
@ -1,6 +0,0 @@
|
||||||
<section>
|
|
||||||
<h3 class="title">{{ .Title }}</h3>
|
|
||||||
<article id="content">
|
|
||||||
{{ .Content }}
|
|
||||||
</article>
|
|
||||||
</section>
|
|
|
@ -1,12 +0,0 @@
|
||||||
{{ partial "header.html" . }}
|
|
||||||
{{ partial "navbar.html" . }}
|
|
||||||
<div class="container">
|
|
||||||
<section id="main">
|
|
||||||
<h1 id="title">{{ .Title }}</h1>
|
|
||||||
<article id="content">
|
|
||||||
{{ .Content }}
|
|
||||||
</article>
|
|
||||||
</section>
|
|
||||||
{{ partial "container-footer.html" . }}
|
|
||||||
</div>
|
|
||||||
{{ partial "footer.html" . }}
|
|
|
@ -1 +0,0 @@
|
||||||
{{ .Page.Site.BaseURL }}
|
|
|
@ -1,2 +0,0 @@
|
||||||
|
|
||||||
These are the files that we share with https://www.docker.com
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -1,32 +0,0 @@
|
||||||
#mktoStyleLoaded {
|
|
||||||
/* css load detection, do not remove */
|
|
||||||
color:#123456;
|
|
||||||
}
|
|
||||||
.mktoForm fieldset {}
|
|
||||||
.mktoForm fieldset legend{}
|
|
||||||
.mktoForm input[type=text],
|
|
||||||
.mktoForm input[type=url],
|
|
||||||
.mktoForm input[type=email],
|
|
||||||
.mktoForm input[type=tel],
|
|
||||||
.mktoForm input[type=number],
|
|
||||||
.mktoForm input[type=date]{}
|
|
||||||
|
|
||||||
.mktoForm input[type=text],
|
|
||||||
.mktoForm input[type=url],
|
|
||||||
.mktoForm input[type=email],
|
|
||||||
.mktoForm input[type=tel],
|
|
||||||
.mktoForm input[type=number],
|
|
||||||
.mktoForm input[type=date],
|
|
||||||
.mktoForm textarea.mktoField,
|
|
||||||
.mktoForm select.mktoField {
|
|
||||||
padding:2px 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mktoForm input[type=text]:focus,
|
|
||||||
.mktoForm input[type=url]:focus,
|
|
||||||
.mktoForm input[type=email]:focus,
|
|
||||||
.mktoForm input[type=tel]:focus,
|
|
||||||
.mktoForm input[type=number]:focus,
|
|
||||||
.mktoForm input[type=date]:focus,
|
|
||||||
.mktoForm select.mktoField:focus,
|
|
||||||
.mktoForm textarea.mktoField:focus{}
|
|
|
@ -1,562 +0,0 @@
|
||||||
/* This is used to test if the stylesheet has been loaded yet*/
|
|
||||||
#mktoStyleLoaded {
|
|
||||||
background-color: #123456;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.mktoForm {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoClear {
|
|
||||||
clear: both;
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
.mktoForm div,
|
|
||||||
.mktoForm span,
|
|
||||||
.mktoForm label,
|
|
||||||
.mktoForm p {
|
|
||||||
text-align: left;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.mktoForm input,
|
|
||||||
.mktoForm select,
|
|
||||||
.mktoForm textarea {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.mktoForm * {
|
|
||||||
font-family: inherit;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoOffset {
|
|
||||||
float: left;
|
|
||||||
height: 1.2em;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoGutter {
|
|
||||||
float: left;
|
|
||||||
height: 1.2em;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoFieldWrap {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoLabel {
|
|
||||||
float: left;
|
|
||||||
line-height: 1.2em;
|
|
||||||
padding-top: 0.3em;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoField {
|
|
||||||
line-height: 1.2em;
|
|
||||||
font-size: 1em;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoPlaceholder {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoLogicalField {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.mktoForm fieldset {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.mktoForm fieldset legend {
|
|
||||||
margin: 0 1em 0.5em;
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
.mktoForm a.mktoNotYou {
|
|
||||||
cursor: pointer;
|
|
||||||
color: #4692f3;
|
|
||||||
}
|
|
||||||
.mktoForm a.mktoNotYou:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoAsterix {
|
|
||||||
float: right;
|
|
||||||
color: #bf0000;
|
|
||||||
padding-left: 5px;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRadioList,
|
|
||||||
.mktoForm .mktoCheckboxList {
|
|
||||||
padding: 0.3em;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRadioList > label,
|
|
||||||
.mktoForm .mktoCheckboxList > label {
|
|
||||||
margin-left: 1.5em;
|
|
||||||
margin-top: 0.1em;
|
|
||||||
margin-bottom: 0.3em;
|
|
||||||
line-height: 1.2em;
|
|
||||||
display: block;
|
|
||||||
min-height: 12px;
|
|
||||||
}
|
|
||||||
.mktoForm.ie7 .mktoRadioList > label,
|
|
||||||
.mktoForm.ie7 .mktoCheckboxList > label {
|
|
||||||
padding: 0.2em 0 0;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRadioList > label > input,
|
|
||||||
.mktoForm .mktoCheckboxList > label > input {
|
|
||||||
float: left;
|
|
||||||
margin: 0;
|
|
||||||
margin-left: -1.5em;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRadioList > input,
|
|
||||||
.mktoForm .mktoCheckboxList > input {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoLabelToLeft > label {
|
|
||||||
text-align: right;
|
|
||||||
margin-left: 0;
|
|
||||||
margin-right: 1.5em;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoLabelToLeft input[type=checkbox],
|
|
||||||
.mktoForm .mktoLabelToLeft input[type=radio] {
|
|
||||||
position: absolute;
|
|
||||||
right: 0.3em;
|
|
||||||
}
|
|
||||||
.mktoForm.mktoLayoutAbove .mktoRequiredField .mktoAsterix {
|
|
||||||
float: left;
|
|
||||||
padding-left: 0;
|
|
||||||
padding-right: 5px;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRequiredField .mktoAsterix {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRequiredField label.mktoLabel {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
.mktoForm input[type=text],
|
|
||||||
.mktoForm input[type=url],
|
|
||||||
.mktoForm input[type=email],
|
|
||||||
.mktoForm input[type=tel],
|
|
||||||
.mktoForm input[type=number],
|
|
||||||
.mktoForm input[type=date] {
|
|
||||||
padding: 0.1em 0.2em;
|
|
||||||
line-height: 1.2em;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.mktoForm input[type=range] {
|
|
||||||
padding: 0.25em 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.mktoForm input[type=range]::-ms-tooltip {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.mktoForm input[type=url],
|
|
||||||
.mktoForm input[type=text],
|
|
||||||
.mktoForm input[type=date],
|
|
||||||
.mktoForm input[type=tel],
|
|
||||||
.mktoForm input[type=email],
|
|
||||||
.mktoForm input[type=number],
|
|
||||||
.mktoForm textarea.mktoField,
|
|
||||||
.mktoForm select.mktoField {
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoFormRow {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoFormCol {
|
|
||||||
float: left;
|
|
||||||
position: relative;
|
|
||||||
min-height: 2em;
|
|
||||||
}
|
|
||||||
.mktoButtonRow {
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.mktoForm textarea.mktoField {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0.2em;
|
|
||||||
margin: 0;
|
|
||||||
line-height: 1.2em;
|
|
||||||
overflow: auto;
|
|
||||||
resize: none;
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
/* Firefox computes row height wrong for the last 13 years... https://bugzilla.mozilla.org/show_bug.cgi?id=33654 */
|
|
||||||
.mktoForm textarea[rows="1"] {
|
|
||||||
height: 2em;
|
|
||||||
}
|
|
||||||
.mktoForm textarea[rows="2"] {
|
|
||||||
height: 3.4em;
|
|
||||||
}
|
|
||||||
.mktoForm textarea[rows="3"] {
|
|
||||||
height: 4.6em;
|
|
||||||
}
|
|
||||||
.mktoForm textarea[rows="4"] {
|
|
||||||
height: 5.8em;
|
|
||||||
}
|
|
||||||
.mktoForm textarea[rows="5"] {
|
|
||||||
height: 7em;
|
|
||||||
}
|
|
||||||
.mktoForm textarea[rows="6"] {
|
|
||||||
height: 8.2em;
|
|
||||||
}
|
|
||||||
.mktoForm textarea[rows="7"] {
|
|
||||||
height: 9.4em;
|
|
||||||
}
|
|
||||||
.mktoForm textarea[rows="8"] {
|
|
||||||
height: 10.6em;
|
|
||||||
}
|
|
||||||
.mktoForm.mktoLayoutCenter .mktoLabel {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
.mktoForm.mktoLayoutAbove .mktoGutter {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.mktoForm.mktoLayoutAbove .mktoLabel {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.mktoForm.mktoLayoutAbove .mktoRadioList,
|
|
||||||
.mktoForm.mktoLayoutAbove .mktoCheckboxList {
|
|
||||||
float: none;
|
|
||||||
clear: left;
|
|
||||||
}
|
|
||||||
.mktoForm.mktoLayoutAbove .mktoField,
|
|
||||||
.mktoForm.mktoLayoutAbove .mktoLogicalField {
|
|
||||||
clear: left;
|
|
||||||
}
|
|
||||||
.mktoForm.mktoLayoutAbove textarea.mktoField {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoError {
|
|
||||||
position: absolute;
|
|
||||||
z-index: 99;
|
|
||||||
color: #bf0000;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoError .mktoErrorArrowWrap {
|
|
||||||
width: 16px;
|
|
||||||
height: 8px;
|
|
||||||
overflow: hidden;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 5px;
|
|
||||||
z-index: 100;
|
|
||||||
}
|
|
||||||
.mktoForm.ie7 .mktoError .mktoErrorArrowWrap {
|
|
||||||
top: -8px;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoError .mktoErrorArrow {
|
|
||||||
background-color: #e51b00;
|
|
||||||
border: 1px solid #9f1300;
|
|
||||||
border-right: none;
|
|
||||||
border-bottom: none;
|
|
||||||
display: inline-block;
|
|
||||||
height: 16px;
|
|
||||||
-webkit-transform: rotate(45deg);
|
|
||||||
-moz-transform: rotate(45deg);
|
|
||||||
transform: rotate(45deg);
|
|
||||||
-ms-transform: rotate(45deg);
|
|
||||||
width: 16px;
|
|
||||||
margin-top: 5px;
|
|
||||||
}
|
|
||||||
/** These two styles are for browsers that don't support css transforms */
|
|
||||||
.mktoForm .mktoError .mktoErrorArrowWrap.mktoArrowImage {
|
|
||||||
background: transparent url("../images/callout-arrow-up-red.png") top center no-repeat;
|
|
||||||
bottom: -7px;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoError .mktoErrorArrowWrap.mktoArrowImage .mktoErrorArrow {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoError .mktoErrorMsg {
|
|
||||||
display: block;
|
|
||||||
margin-top: 7px;
|
|
||||||
background-color: #e51b00;
|
|
||||||
background-image: -webkit-linear-gradient(#e51b00 43%, #ba1600 100%);
|
|
||||||
background-image: -moz-linear-gradient(#e51b00 43%, #ba1600 100%);
|
|
||||||
background-image: linear-gradient(#e51b00 43%, #ba1600 100%);
|
|
||||||
background-image: -ms-linear-gradient(#e51b00 43%, #ba1600 100%);
|
|
||||||
border: 1px solid #9f1300;
|
|
||||||
-webkit-border-radius: 6px;
|
|
||||||
border-radius: 6px;
|
|
||||||
-webkit-box-shadow: rgba(0,0,0,0.65) 0 2px 7px, inset #ff3c3c 0 1px 0px;
|
|
||||||
box-shadow: rgba(0,0,0,0.65) 0 2px 7px, inset #ff3c3c 0 1px 0px;
|
|
||||||
color: #f3f3f3;
|
|
||||||
font-size: 1em;
|
|
||||||
line-height: 1.2em;
|
|
||||||
max-width: 16em;
|
|
||||||
padding: 0.4em 0.6em;
|
|
||||||
text-shadow: #901100 0 -1px 0;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoError .mktoErrorMsg .mktoErrorDetail {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.mktoForm button.mktoButton {
|
|
||||||
cursor: pointer;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.mktoForm button.mktoButton:disabled {
|
|
||||||
opacity: 0.5;
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
|
||||||
filter: alpha(opacity=50);
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
.mktoNoJS .mktoLabel {
|
|
||||||
display: block;
|
|
||||||
padding-right: 10px;
|
|
||||||
width: 110px;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
.mktoNoJS input[type=text] {
|
|
||||||
width: 150px;
|
|
||||||
}
|
|
||||||
.mktoForm .cf_widget_socialsignon .cf_sign_on {
|
|
||||||
margin-bottom: 1.5em;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRangeField .mktoRangeValue {
|
|
||||||
zoom: 1;
|
|
||||||
float: left;
|
|
||||||
display: none;
|
|
||||||
text-align: center;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 99;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
.mktoForm.ie7 .mktoRangeField .mktoRangeValue,
|
|
||||||
.mktoForm.ie6 .mktoRangeField .mktoRangeValue {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRangeField.mktoHover .mktoRangeValue {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRangeField .mktoRangeValueArrowWrap {
|
|
||||||
width: 16px;
|
|
||||||
height: 8px;
|
|
||||||
overflow: hidden;
|
|
||||||
position: absolute;
|
|
||||||
bottom: -7px;
|
|
||||||
z-index: 100;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRangeField .mktoRangeValueArrow {
|
|
||||||
background-color: #028d05;
|
|
||||||
border: 1px solid #005602;
|
|
||||||
height: 16px;
|
|
||||||
-webkit-transform: rotate(45deg);
|
|
||||||
-moz-transform: rotate(45deg);
|
|
||||||
transform: rotate(45deg);
|
|
||||||
-ms-transform: rotate(45deg);
|
|
||||||
width: 16px;
|
|
||||||
background-color: #007d04;
|
|
||||||
border-left: none;
|
|
||||||
border-top: none;
|
|
||||||
margin-top: 5px;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 5px;
|
|
||||||
}
|
|
||||||
/** These two styles are for browsers that don't support css transforms */
|
|
||||||
.mktoForm .mktoRangeField .mktoRangeValueArrowWrap.mktoArrowImage {
|
|
||||||
background: transparent url("../images/callout-arrow-down-green.png") top center no-repeat;
|
|
||||||
bottom: -7px;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRangeField .mktoRangeValueArrowWrap.mktoArrowImage .mktoRangeValueArrow {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRangeField .mktoRangeValueText {
|
|
||||||
display: block;
|
|
||||||
background-color: #028d05;
|
|
||||||
background-image: -webkit-linear-gradient(#028d05 43%, #007d04 100%);
|
|
||||||
background-image: -moz-linear-gradient(#028d05 43%, #007d04 100%);
|
|
||||||
background-image: linear-gradient(#028d05 43%, #007d04 100%);
|
|
||||||
background-image: -ms-linear-gradient(#028d05 43%, #007d04 100%);
|
|
||||||
border: 1px solid #005602;
|
|
||||||
-webkit-border-radius: 6px;
|
|
||||||
border-radius: 6px;
|
|
||||||
-webkit-box-shadow: rgba(0,0,0,0.65) 0 2px 7px, inset #00a500 0 1px 0px;
|
|
||||||
box-shadow: rgba(0,0,0,0.65) 0 2px 7px, inset #00a500 0 1px 0px;
|
|
||||||
color: #f3f3f3;
|
|
||||||
font-size: 1em;
|
|
||||||
line-height: 1.2em;
|
|
||||||
padding: 0.4em 0.6em;
|
|
||||||
text-shadow: #005602 0 -1px 0;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.mktoModal {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
.mktoModal .mktoModalMask {
|
|
||||||
position: absolute;
|
|
||||||
z-index: 10000;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
zoom: 1;
|
|
||||||
background: rgba(0,0,0,0.5);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#80000000, endColorstr=#80000000);
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#80000000, endColorstr=#80000000)";
|
|
||||||
}
|
|
||||||
.mktoModal .mktoModalContent {
|
|
||||||
position: absolute;
|
|
||||||
z-index: 10001;
|
|
||||||
background: #fff;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
.mktoModal .mktoModalClose {
|
|
||||||
position: absolute;
|
|
||||||
cursor: pointer;
|
|
||||||
top: -10px;
|
|
||||||
right: -10px;
|
|
||||||
background: #000;
|
|
||||||
color: #fff;
|
|
||||||
width: 19px;
|
|
||||||
height: 19px;
|
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 19px;
|
|
||||||
-webkit-border-radius: 19px;
|
|
||||||
border-radius: 19px;
|
|
||||||
text-align: center;
|
|
||||||
border: 2px solid #ccc;
|
|
||||||
}
|
|
||||||
/* This part of the stylesheet is overrides for mobile browsers with screen width restrictions.
|
|
||||||
It should always be at the end of the document. */
|
|
||||||
@media only screen and (max-width: 480px) {
|
|
||||||
.mktoForm,
|
|
||||||
.mktoForm * {
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoGutter,
|
|
||||||
.mktoForm .mktoOffset {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoFormCol .mktoLabel {
|
|
||||||
text-align: left;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoFormCol {
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoFieldWrap {
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
.mktoForm fieldset {
|
|
||||||
padding: 0 10px;
|
|
||||||
}
|
|
||||||
.mktoForm input[type=url],
|
|
||||||
.mktoForm input[type=text],
|
|
||||||
.mktoForm input[type=date],
|
|
||||||
.mktoForm input[type=tel],
|
|
||||||
.mktoForm input[type=email],
|
|
||||||
.mktoForm input[type=number],
|
|
||||||
.mktoForm textarea.mktoField,
|
|
||||||
.mktoForm select.mktoField {
|
|
||||||
width: 100%;
|
|
||||||
height: 1.5em;
|
|
||||||
line-height: 1.5em;
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
.mktoForm select.mktoField {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoFormRow .mktoField {
|
|
||||||
clear: left;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoFormRow .mktoFormCol {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoRadioList,
|
|
||||||
.mktoForm .mktoCheckboxList {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.mktoForm .mktoFormRow .mktoRequiredField .mktoAsterix {
|
|
||||||
float: left;
|
|
||||||
padding-left: 0;
|
|
||||||
padding-right: 5px;
|
|
||||||
}
|
|
||||||
.mktoModal .mktoModalContent {
|
|
||||||
padding: 10px 0;
|
|
||||||
}
|
|
||||||
.mktoModal .mktoModalClose {
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
.mktoForm .cf_widget_socialsignon {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.mktoForm .cf_widget_socialsignon .cf_sign_on {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.mktoForm .cf_widget_socialsignon .cf_sign_on_button {
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media only screen and (max-width: 480px), only screen and (max-device-width: 480px), only screen and (max-device-height: 480px) {
|
|
||||||
.mktoMobileShow .mktoForm,
|
|
||||||
.mktoForm * {
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .mktoGutter,
|
|
||||||
.mktoMobileShow .mktoForm .mktoOffset {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .mktoFormCol .mktoLabel {
|
|
||||||
text-align: left;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .mktoFormCol {
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .mktoFieldWrap {
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm fieldset {
|
|
||||||
padding: 0 10px;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm input[type=url],
|
|
||||||
.mktoMobileShow .mktoForm input[type=text],
|
|
||||||
.mktoMobileShow .mktoForm input[type=date],
|
|
||||||
.mktoMobileShow .mktoForm input[type=tel],
|
|
||||||
.mktoMobileShow .mktoForm input[type=email],
|
|
||||||
.mktoMobileShow .mktoForm input[type=number],
|
|
||||||
.mktoMobileShow .mktoForm textarea.mktoField,
|
|
||||||
.mktoMobileShow .mktoForm select.mktoField {
|
|
||||||
width: 100%;
|
|
||||||
height: 1.5em;
|
|
||||||
line-height: 1.5em;
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm select.mktoField {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .mktoFormRow .mktoField {
|
|
||||||
clear: left;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .mktoFormRow .mktoFormCol {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .mktoRadioList,
|
|
||||||
.mktoMobileShow .mktoForm .mktoCheckboxList {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .mktoFormRow .mktoRequiredField .mktoAsterix {
|
|
||||||
float: left;
|
|
||||||
padding-left: 0;
|
|
||||||
padding-right: 5px;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoModal .mktoModalContent {
|
|
||||||
padding: 10px 0;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoModal .mktoModalClose {
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .cf_widget_socialsignon {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .cf_widget_socialsignon .cf_sign_on {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.mktoMobileShow .mktoForm .cf_widget_socialsignon .cf_sign_on_button {
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,99 +0,0 @@
|
||||||
/*
|
|
||||||
|
|
||||||
github.com style (c) Vasily Polovnyov <vast@whiteants.net>
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
.hljs {
|
|
||||||
display: block;
|
|
||||||
overflow-x: auto;
|
|
||||||
padding: 0.5em;
|
|
||||||
color: #333;
|
|
||||||
background: #f8f8f8;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-comment,
|
|
||||||
.hljs-quote {
|
|
||||||
color: #998;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-keyword,
|
|
||||||
.hljs-selector-tag,
|
|
||||||
.hljs-subst {
|
|
||||||
color: #333;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-number,
|
|
||||||
.hljs-literal,
|
|
||||||
.hljs-variable,
|
|
||||||
.hljs-template-variable,
|
|
||||||
.hljs-tag .hljs-attr {
|
|
||||||
color: #008080;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-string,
|
|
||||||
.hljs-doctag {
|
|
||||||
color: #d14;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-title,
|
|
||||||
.hljs-section,
|
|
||||||
.hljs-selector-id {
|
|
||||||
color: #900;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-subst {
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-type,
|
|
||||||
.hljs-class .hljs-title {
|
|
||||||
color: #458;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-tag,
|
|
||||||
.hljs-name,
|
|
||||||
.hljs-attribute {
|
|
||||||
color: #000080;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-regexp,
|
|
||||||
.hljs-link {
|
|
||||||
color: #009926;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-symbol,
|
|
||||||
.hljs-bullet {
|
|
||||||
color: #990073;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-built_in,
|
|
||||||
.hljs-builtin-name {
|
|
||||||
color: #0086b3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-meta {
|
|
||||||
color: #999;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-deletion {
|
|
||||||
background: #fdd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-addition {
|
|
||||||
background: #dfd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-emphasis {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hljs-strong {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
|
@ -1,241 +0,0 @@
|
||||||
/* ========== Start Responsive Sytling ========== */
|
|
||||||
@media screen and (max-width:1199px) {
|
|
||||||
.node-type-front-page .dockercon16 section.title_section.darkblue a.button{
|
|
||||||
margin-bottom: 70px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media screen and (max-width:991px) {
|
|
||||||
section.section {
|
|
||||||
padding: 80px 0;
|
|
||||||
}
|
|
||||||
.main-header div>.nav-main>li {
|
|
||||||
margin-left: 16px;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn > a{
|
|
||||||
border: 0;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn:after{
|
|
||||||
border: 0;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn > a:after{
|
|
||||||
border: 0;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn > a:before{
|
|
||||||
border: 0;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
.pricing-tables > li {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
.pricing-tables > li.standard {
|
|
||||||
border-right: 1px solid #CCC;
|
|
||||||
}
|
|
||||||
.main-header .logo, .main-header .logo_safari {
|
|
||||||
margin-left: 50px;
|
|
||||||
margin-top: 16px;
|
|
||||||
}
|
|
||||||
.main_footer .footer-nav .primary-footer-sub-nav {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.main_footer .footer-nav .primary-footer-sub-nav ul li {
|
|
||||||
margin-left: 0px;
|
|
||||||
margin-right: 30px;
|
|
||||||
}
|
|
||||||
section.use_case_item_section .items.media li .media_content {
|
|
||||||
padding-right: 30px;
|
|
||||||
}
|
|
||||||
.dockercon16 section.use_case_item_section.section .button_table a.button {
|
|
||||||
padding: 15px 20px 13px 20px;
|
|
||||||
}
|
|
||||||
section.government_partners_section .government_partners_tabs ul li{
|
|
||||||
max-width: 32%;
|
|
||||||
}
|
|
||||||
section.government_other_resources_section.GenericDev .items.displaytable li {
|
|
||||||
float: left;
|
|
||||||
display: block;
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
section.government_partners_section .government_partners_tabs ul li .helper img{
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
section.dockercon_quotes_section .quotes_icon {
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
section.career_job_openings_section.GenericDev .items.media li {
|
|
||||||
padding: 20px 30px 20px 30px;
|
|
||||||
}
|
|
||||||
section.career_job_openings_section.GenericDev .items.media li .media_image {
|
|
||||||
left: 30px;
|
|
||||||
}
|
|
||||||
section.career_overview_section.GenericDev .items>li {
|
|
||||||
padding: 0;
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media screen and (max-width:940px) {
|
|
||||||
header .top-right-bg {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media screen and (max-width:767px) {
|
|
||||||
section.section {
|
|
||||||
padding: 60px 0;
|
|
||||||
}
|
|
||||||
section.GenericDev .items>li {
|
|
||||||
padding: 20px 10px 20px;
|
|
||||||
}
|
|
||||||
.dockercon16 div.heronav_section ul li a {
|
|
||||||
padding: 14px 30px 10px 30px;
|
|
||||||
}
|
|
||||||
.dockercon16 section.section a.button, .dockercon16 section.title_section a.button {
|
|
||||||
margin-right: 10px;
|
|
||||||
margin-left: 10px;
|
|
||||||
}.dockercon16 section.section a.button+a.button, .dockercon16 section.title_section a.button+a.button {
|
|
||||||
margin-right: 10px;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
.sm-margin-top-40 {
|
|
||||||
margin-top:40px;
|
|
||||||
}
|
|
||||||
footer.main_footer .top_footer {
|
|
||||||
margin-bottom: 50px;
|
|
||||||
}
|
|
||||||
footer.main_footer div.newsletter {
|
|
||||||
max-width: none;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
footer.main_footer .social-icons {
|
|
||||||
max-width: none;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
.node-type-front-page .dockercon16 section.title_section.darkblue img.moby {
|
|
||||||
margin-bottom: 40px;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section {
|
|
||||||
background-size: 200% 52px;
|
|
||||||
}
|
|
||||||
.dockercon16 section.title_section .dockercon16_padding {
|
|
||||||
padding-top: 50px;
|
|
||||||
}
|
|
||||||
.dockercon16 section .dockercon16_padding {
|
|
||||||
padding-top:50px;
|
|
||||||
}
|
|
||||||
.dockercon16 section.use_case_item_section.section .button_table a.button {
|
|
||||||
margin-top:30px;
|
|
||||||
}
|
|
||||||
section.feature_customer_section.GenericDev .items.media>li{
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
section.dockercon_quotes_section .quotes_icon {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
.sidebarnav_section ul{
|
|
||||||
margin: 0px 0px 1.5rem;
|
|
||||||
}
|
|
||||||
.dockercon16 .row .sidebarnav_section+.floatleft,.dockercon16 .docker_captian_about_section .text-left{
|
|
||||||
margin-top: 140px;
|
|
||||||
}
|
|
||||||
.dockercon16 .row .sidebarnav_section+.floatleft>.row{
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.dockercon16 .docker_captian_about_section{
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.dockercon16 .event-search {
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.path-aws .dockercon16 .row .sidebarnav_section+.floatleft, .path-hpe .dockercon16 .row .sidebarnav_section+.floatleft, .path-IBM .dockercon16 .row .sidebarnav_section+.floatleft, .path-partner-portal .dockercon16 .row .sidebarnav_section+.floatleft , .path-microsoft .dockercon16 .row .sidebarnav_section+.floatleft, .path-find-partner .dockercon16 .row .sidebarnav_section+.floatleft {
|
|
||||||
margin-top: 175px;
|
|
||||||
}
|
|
||||||
.path-resources .dockercon16 .row .sidebarnav_section+.floatleft, .path-section-products .dockercon16 .row .sidebarnav_section+.floatleft {
|
|
||||||
margin-top: 280px;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn {
|
|
||||||
width: inherit;
|
|
||||||
}
|
|
||||||
section.title_section.darkblue img {
|
|
||||||
max-height: 250px;
|
|
||||||
}
|
|
||||||
.dockercon16 section.title_section .textalign-left a.button, .dockercon16 section.title_section .textalign-left a.button+a.button {
|
|
||||||
margin: 20px 0;
|
|
||||||
}
|
|
||||||
section.docker_product_section.GenericDev .items.media {
|
|
||||||
margin-left: -20px;
|
|
||||||
margin-right: -20px;
|
|
||||||
}
|
|
||||||
section.docker_product_section.GenericDev .items.media li {
|
|
||||||
padding-left: 20px;
|
|
||||||
padding-right: 20px;
|
|
||||||
}
|
|
||||||
section.docker_product_section .items.media li .media_image {
|
|
||||||
left: 25px!important;
|
|
||||||
}
|
|
||||||
section.toolbox_overview_section .items>li a.button {
|
|
||||||
margin: 10px 00px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media screen and (max-width:680px) {
|
|
||||||
.pricing-tables > li {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media screen and (max-width:600px) {
|
|
||||||
.dockercon16 section.title_section a.button,.dockercon16 section.title_section a.button+a.button{
|
|
||||||
display: block;
|
|
||||||
max-width: 300px;
|
|
||||||
margin: 20px auto;
|
|
||||||
}
|
|
||||||
.dockercon16 div.heronav_section ul {
|
|
||||||
display: block;
|
|
||||||
clear: none;
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
.dockercon16 div.heronav_section ul li {
|
|
||||||
float: none;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
.dockercon16 div.heronav_section ul li a {
|
|
||||||
padding: 14px 20px 10px 20px;
|
|
||||||
}
|
|
||||||
section.use_case_item_section .quote_container .author {
|
|
||||||
padding-left: 40%;
|
|
||||||
}
|
|
||||||
section.use_case_item_section .quote_container .author_position {
|
|
||||||
padding-left: 40%;
|
|
||||||
}
|
|
||||||
section.dockercon_quotes_section .quotes_slider .slides li .author{
|
|
||||||
padding-left: 40%;
|
|
||||||
}
|
|
||||||
section.dockercon_quotes_section .quotes_slider .slides li .author_position {
|
|
||||||
padding-left: 40%;
|
|
||||||
}
|
|
||||||
section.customers_logos_section .items>li{
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
section.customers_logos_section .items>li a{
|
|
||||||
min-height: 250px;
|
|
||||||
}
|
|
||||||
section.government_other_resources_section.GenericDev .items.displaytable li {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media screen and (max-width:500px) {
|
|
||||||
|
|
||||||
}
|
|
||||||
@media screen and (max-width:480px) {
|
|
||||||
section.customers_logos_section .items>li{
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media screen and (max-width:400px) {
|
|
||||||
section.included_product_section a.button {
|
|
||||||
width: 90%;
|
|
||||||
}
|
|
||||||
section.product_features_product_section .items li a.button {
|
|
||||||
min-width: inherit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* ========== End Responsive Sytling ========== */
|
|
|
@ -1,97 +0,0 @@
|
||||||
/* ========== Start Extra Sytling ========== */
|
|
||||||
/** CSS Overrides - this is temporary and should be formally added to the master scss files **/
|
|
||||||
/** Global links **/
|
|
||||||
a, a:active, a:hover, a:focus {outline: none;}
|
|
||||||
a:hover, a:focus {text-decoration: none;}
|
|
||||||
/** header **/
|
|
||||||
header .nav-global li a,
|
|
||||||
.main-header div > .nav-main a {
|
|
||||||
color: rgba(255, 255, 255, 0.85);
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
header .nav-global li a:hover,
|
|
||||||
.main-header div > .nav-main a:hover {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
/********** hide these elements *********/
|
|
||||||
.cta-illustration {display: none;}
|
|
||||||
.main-header .logo_safari {
|
|
||||||
display:none;
|
|
||||||
visibility:hidden;
|
|
||||||
}
|
|
||||||
.main-header .logo{
|
|
||||||
width: 116px;
|
|
||||||
width: 136px;
|
|
||||||
|
|
||||||
}
|
|
||||||
/* SVEN SAYS NO
|
|
||||||
html.safari .main-header .logo{
|
|
||||||
display:none;
|
|
||||||
visibility:hidden;
|
|
||||||
}
|
|
||||||
html.safari .main-header .logo_safari{
|
|
||||||
width: 116px;
|
|
||||||
width: 136px;
|
|
||||||
|
|
||||||
display: block;
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
section.community_section{
|
|
||||||
padding:50px 0;
|
|
||||||
}
|
|
||||||
section.community_section .columns iframe{
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
section.community_section .columns img{
|
|
||||||
height:100%!important;
|
|
||||||
width:100%!important;
|
|
||||||
}
|
|
||||||
section.community_section .columns center img{
|
|
||||||
height: 160px!important;
|
|
||||||
width: 160px!important;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.node-type-flexible-page .dockercon16 section.whitebackground p.{
|
|
||||||
font-size: 14px;
|
|
||||||
color: #496B81;
|
|
||||||
margin-bottom: 30px;
|
|
||||||
line-height: 1.6;
|
|
||||||
}
|
|
||||||
.path-docker-community-incident-report .iframe{
|
|
||||||
width: 100%;
|
|
||||||
max-width:700px;
|
|
||||||
}
|
|
||||||
.dockercon16 section.install_the_platform_section.section a.button.darkblue-btn{
|
|
||||||
margin-top:30px;
|
|
||||||
}
|
|
||||||
.path-find-partner .sidebarnav_section ul{
|
|
||||||
margin: 0px 0 1.5rem 0;
|
|
||||||
}
|
|
||||||
.path-find-partner div.sidebarnav_section.affix{
|
|
||||||
top: 52px;
|
|
||||||
}
|
|
||||||
.node-type-projects .button.darkblue-btn {
|
|
||||||
background-color: transparent;
|
|
||||||
color: #E6F9FF;
|
|
||||||
padding: 10px 40px;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
}
|
|
||||||
/********** for toolbox only *********/
|
|
||||||
.path-docker-toolbox .dockercon16 section.title_section a.button.white-btn {
|
|
||||||
padding: 14px 70px 11px 70px;
|
|
||||||
background: transparent;
|
|
||||||
color: #fff;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.path-docker-toolbox .dockercon16 section.title_section a.button.white-btn:hover {
|
|
||||||
background: RGBA(255, 255, 255, 0.25);
|
|
||||||
border: 1px solid #fff;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
/********** for project only *********/
|
|
||||||
.dockercon16 section.projects_docker_projects_section.section a.button.darkblue-border-btn {
|
|
||||||
margin-top: 30px;
|
|
||||||
}
|
|
||||||
/* ========== End Extra Sytling ========== */
|
|
|
@ -1,10 +0,0 @@
|
||||||
|
|
||||||
@media only screen and (max-width: 58.75em) {
|
|
||||||
|
|
||||||
}
|
|
||||||
@media only screen and (max-width: 47.9375em) {
|
|
||||||
|
|
||||||
}
|
|
||||||
@media only screen and (max-width: 40em) {
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,234 +0,0 @@
|
||||||
|
|
||||||
/* extracted from the index.html */
|
|
||||||
|
|
||||||
.node-type-front-page .dockercon16 section.title_section.darkblue img.moby {
|
|
||||||
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section { position:static; }
|
|
||||||
div.dockercon_registation_section img.dcon_logo {
|
|
||||||
padding-left: 40px;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn {
|
|
||||||
color: #fff;
|
|
||||||
font-size: 14px;
|
|
||||||
float: left;
|
|
||||||
height: 43px;
|
|
||||||
width: 260px;
|
|
||||||
overflow: hidden;
|
|
||||||
position: relative;
|
|
||||||
font-family: 'Geomanist Book', sans-serif;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn:before {
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn:after {
|
|
||||||
content: ' ';
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0px;
|
|
||||||
left: 0px;
|
|
||||||
right: 0px;
|
|
||||||
z-index: 2;
|
|
||||||
display: block;
|
|
||||||
border-bottom: 10px solid #00445b;
|
|
||||||
border-left: 260px solid transparent;
|
|
||||||
border-right: 0px solid transparent;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn > a:hover,
|
|
||||||
div.dockercon_registation_section .cross-btn > a:focus,
|
|
||||||
div.dockercon_registation_section .cross-btn > a:active,
|
|
||||||
div.dockercon_registation_section .cross-btn > a:visited {
|
|
||||||
outline: none;
|
|
||||||
border: none;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn > a {
|
|
||||||
color: inherit;
|
|
||||||
display: inline-block;
|
|
||||||
background-color: #6cd7d0;
|
|
||||||
padding-top: 7px;
|
|
||||||
padding-bottom: 7px;
|
|
||||||
padding-left: 10px;
|
|
||||||
margin-left: 20px;
|
|
||||||
position: relative;
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn > a:before {
|
|
||||||
content: ' ';
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: -2px;
|
|
||||||
left: -10px;
|
|
||||||
width: 20px;
|
|
||||||
height: 50px;
|
|
||||||
background-color: #6cd7d0;
|
|
||||||
transform: rotate(380deg);
|
|
||||||
transform-origin: center left;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn > a:after {
|
|
||||||
content: ' ';
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: -2px;
|
|
||||||
right: -110px;
|
|
||||||
width: 120px;
|
|
||||||
height: 40px;
|
|
||||||
background-color: #6cd7d0;
|
|
||||||
transform: rotate(380deg);
|
|
||||||
transform-origin: center left;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn > a > span {
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
div.dockercon_registation_section .cross-btn > a > span > i {
|
|
||||||
background-image: url(/sites/all/themes/docker/assets/images/dcon_video_play.png);
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
display: inline-block;
|
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
vertical-align: middle;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** CSS Overrides - this is temporary and should be formally added to the master scss files **/
|
|
||||||
/** Global links **/
|
|
||||||
a, a:active {outline: none;}
|
|
||||||
a:hover {text-decoration: none;}
|
|
||||||
|
|
||||||
/** header **/
|
|
||||||
header .nav-global li a,
|
|
||||||
.main-header div > .nav-main a {
|
|
||||||
color: rgba(255, 255, 255, 0.85);
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
header .nav-global li a:hover,
|
|
||||||
.main-header div > .nav-main a:hover {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
.main-header div > .nav-main > li ul {
|
|
||||||
transition: all ease-in .2s;
|
|
||||||
}
|
|
||||||
/** global navigation elements **/
|
|
||||||
.main-header div>.nav-main a {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
.dockercon16 div.heronav_section {
|
|
||||||
background-color: #003E52;
|
|
||||||
}
|
|
||||||
.dockercon16 div.heronav_section ul li {
|
|
||||||
margin: 0px 3px;
|
|
||||||
}
|
|
||||||
.dockercon16 div.heronav_section ul li a {
|
|
||||||
padding: 15px 40px 9px 40px;
|
|
||||||
}
|
|
||||||
/***************************************************************** front page ****************************************************************/
|
|
||||||
|
|
||||||
.customer_and_news_section.section.GenericDev.bluebackground {
|
|
||||||
padding: 50px;
|
|
||||||
}
|
|
||||||
body .dockercon16 section.section {
|
|
||||||
padding: 160px 0;
|
|
||||||
}
|
|
||||||
/** update to button styles**/
|
|
||||||
.front section.title_section.darkblue .button {
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
.front .dockercon16 section.title_section.darkblue h1 {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
.node-type-front-page .dockercon16 section.title_section.darkblue a.button {
|
|
||||||
background-color: rgba(0, 78, 103, 0.61);
|
|
||||||
padding: 17px 40px 14px 40px;
|
|
||||||
}
|
|
||||||
.node-type-front-page .dockercon16 section.title_section.darkblue p {
|
|
||||||
font-size: 18px;
|
|
||||||
color: #FFFFFF;
|
|
||||||
max-width: 340px;
|
|
||||||
}
|
|
||||||
section.customer_and_news_section.section {
|
|
||||||
background-color: #003E52;
|
|
||||||
}
|
|
||||||
/** hide bottom section - this should be removed from tempate **/
|
|
||||||
.bottom_cta_section.gary.section.GenericDev.bgblue5.bluebackground {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
/*section.title_section.darkblue .button {
|
|
||||||
margin-top: 0px;
|
|
||||||
}*/
|
|
||||||
/** button on:hover **/
|
|
||||||
.node-type-front-page .dockercon16 section.title_section.darkblue a.button:hover {
|
|
||||||
background: rgba(0, 0, 0, 0.6);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** please remove this field from the content type (infra/industry) **/
|
|
||||||
.projects_software_infrast_section img, .projects_open_industry_section img {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/************************************** typography ****************** All headings should be Geomanist Light ***************************/
|
|
||||||
.dockercon16 section.title_section.darkblue h1 {
|
|
||||||
font-family: 'Geomanist Light', sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
body .dockercon16 h2 {
|
|
||||||
font-family: 'Geomanist Light', sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dockercon16 section.GenericDev .items.media li .media_content h3 {
|
|
||||||
font-family: 'Geomanist Regular', sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***** blue background gradient *******/
|
|
||||||
section.bgblue4.section {
|
|
||||||
background: #285a8c;
|
|
||||||
background: -moz-linear-gradient(top, #1488C6 0%, #124b77 100%, #124b77 100%);
|
|
||||||
background: -webkit-linear-gradient(top, #1488C6 0%,#124b77 100%,#124b77 100%);
|
|
||||||
background: linear-gradient(to top, #1488C6 0%,#124b77 100%,#124b77 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1488C6', endColorstr='#124b77',GradientType=0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************** buttons **************************************/
|
|
||||||
.dockercon16 section.section a.button.darkblue-btn, .dockercon16 section.title_section a.button.darkblue-btn {
|
|
||||||
padding: 15px 40px 13px 40px;
|
|
||||||
}
|
|
||||||
.dockercon16 section.section a.button.darkblue-btn:hover, .dockercon16 section.title_section a.button.darkblue-btn:hover {
|
|
||||||
background: #235363;
|
|
||||||
}
|
|
||||||
/** outline buttons on blue **/
|
|
||||||
.dockercon16 section.customer_and_news_section.section.GenericDev .items.media li a.button {
|
|
||||||
border: 1px solid #72B8D6;
|
|
||||||
padding: 10px 40px 9px 40px;
|
|
||||||
}
|
|
||||||
.dockercon16 section.customer_and_news_section.section.GenericDev .items.media li a.button:hover {
|
|
||||||
background: rgba(255, 255, 255, 0.41);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** white buttons **/
|
|
||||||
.dockercon16 section.section a.button.white-btn {
|
|
||||||
padding: 15px 40px 13px 40px;
|
|
||||||
}
|
|
||||||
.dockercon16 section.title_section a.button.white-btn {
|
|
||||||
padding: 15px 40px 13px 40px;
|
|
||||||
}
|
|
||||||
.dockercon16 section.section a.button.white-btn:hover {
|
|
||||||
background: RGBA(255, 255, 255, 0.71);
|
|
||||||
}
|
|
||||||
.dockercon16 section.title_section a.button.white-border-btn {
|
|
||||||
padding: 14px 40px 12px 40px;
|
|
||||||
}
|
|
||||||
/************************ footer ****************************/
|
|
||||||
div.moby_footer .bar {
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
footer.main_footer {
|
|
||||||
border-top: 10px solid #ffd601;
|
|
||||||
outline: 13px solid #9ce2c0;
|
|
||||||
}
|
|
||||||
/************************ hide these elements ****************************/
|
|
||||||
.cta-illustration {display: none;}
|
|
||||||
|
|
Binary file not shown.
|
@ -1,213 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>Transfonter demo</title>
|
|
||||||
<link href="stylesheet.css" rel="stylesheet">
|
|
||||||
<style>
|
|
||||||
/*
|
|
||||||
http://meyerweb.com/eric/tools/css/reset/
|
|
||||||
v2.0 | 20110126
|
|
||||||
License: none (public domain)
|
|
||||||
*/
|
|
||||||
html, body, div, span, applet, object, iframe,
|
|
||||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
|
||||||
a, abbr, acronym, address, big, cite, code,
|
|
||||||
del, dfn, em, img, ins, kbd, q, s, samp,
|
|
||||||
small, strike, strong, sub, sup, tt, var,
|
|
||||||
b, u, i, center,
|
|
||||||
dl, dt, dd, ol, ul, li,
|
|
||||||
fieldset, form, label, legend,
|
|
||||||
table, caption, tbody, tfoot, thead, tr, th, td,
|
|
||||||
article, aside, canvas, details, embed,
|
|
||||||
figure, figcaption, footer, header, hgroup,
|
|
||||||
menu, nav, output, ruby, section, summary,
|
|
||||||
time, mark, audio, video {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
border: 0;
|
|
||||||
font-size: 100%;
|
|
||||||
font: inherit;
|
|
||||||
vertical-align: baseline;
|
|
||||||
}
|
|
||||||
/* HTML5 display-role reset for older browsers */
|
|
||||||
article, aside, details, figcaption, figure,
|
|
||||||
footer, header, hgroup, menu, nav, section {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
line-height: 1;
|
|
||||||
}
|
|
||||||
ol, ul {
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
blockquote, q {
|
|
||||||
quotes: none;
|
|
||||||
}
|
|
||||||
blockquote:before, blockquote:after,
|
|
||||||
q:before, q:after {
|
|
||||||
content: '';
|
|
||||||
content: none;
|
|
||||||
}
|
|
||||||
table {
|
|
||||||
border-collapse: collapse;
|
|
||||||
border-spacing: 0;
|
|
||||||
}
|
|
||||||
/* common styles */
|
|
||||||
body {
|
|
||||||
background: #f1f1f1;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
.page {
|
|
||||||
background: #fff;
|
|
||||||
width: 940px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 20px 20px 0 20px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.font-container {
|
|
||||||
overflow-x: auto;
|
|
||||||
overflow-y: hidden;
|
|
||||||
margin-bottom: 40px;
|
|
||||||
line-height: 1.3;
|
|
||||||
white-space: nowrap;
|
|
||||||
padding-bottom: 5px;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
position: relative;
|
|
||||||
background: #444;
|
|
||||||
font-size: 32px;
|
|
||||||
color: #fff;
|
|
||||||
padding: 10px 20px;
|
|
||||||
margin: 0 -20px 10px -20px;
|
|
||||||
}
|
|
||||||
.letters {
|
|
||||||
font-size: 25px;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
.s10:before {
|
|
||||||
content: '10px';
|
|
||||||
}
|
|
||||||
.s11:before {
|
|
||||||
content: '11px';
|
|
||||||
}
|
|
||||||
.s12:before {
|
|
||||||
content: '12px';
|
|
||||||
}
|
|
||||||
.s14:before {
|
|
||||||
content: '14px';
|
|
||||||
}
|
|
||||||
.s18:before {
|
|
||||||
content: '18px';
|
|
||||||
}
|
|
||||||
.s24:before {
|
|
||||||
content: '24px';
|
|
||||||
}
|
|
||||||
.s30:before {
|
|
||||||
content: '30px';
|
|
||||||
}
|
|
||||||
.s36:before {
|
|
||||||
content: '36px';
|
|
||||||
}
|
|
||||||
.s48:before {
|
|
||||||
content: '48px';
|
|
||||||
}
|
|
||||||
.s60:before {
|
|
||||||
content: '60px';
|
|
||||||
}
|
|
||||||
.s72:before {
|
|
||||||
content: '72px';
|
|
||||||
}
|
|
||||||
.s10:before, .s11:before, .s12:before, .s14:before,
|
|
||||||
.s18:before, .s24:before, .s30:before, .s36:before,
|
|
||||||
.s48:before, .s60:before, .s72:before {
|
|
||||||
font-family: Arial, sans-serif;
|
|
||||||
font-size: 10px;
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
color: #999;
|
|
||||||
padding-right: 6px;
|
|
||||||
}
|
|
||||||
/* fonts demo styles */
|
|
||||||
.demo-0 {
|
|
||||||
font-family: 'Comfortaa';
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
.demo-1 {
|
|
||||||
font-family: 'Comfortaa';
|
|
||||||
font-weight: 300;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
.demo-2 {
|
|
||||||
font-family: 'Comfortaa';
|
|
||||||
font-weight: bold;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="page">
|
|
||||||
<div class="demo-0">
|
|
||||||
<h1>Comfortaa</h1>
|
|
||||||
<div class="font-container">
|
|
||||||
<p class="letters">
|
|
||||||
abcdefghijklmnopqrstuvwxyz <br />
|
|
||||||
ABCDEFGHIJKLMNOPQRSTUVWXYZ <br /> 0123456789.:,;()*!?'@#<>$%&^+-=~
|
|
||||||
</p>
|
|
||||||
<p class="s10" style="font-size: 10px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s11" style="font-size: 11px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s12" style="font-size: 12px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s14" style="font-size: 14px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s18" style="font-size: 18px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s24" style="font-size: 24px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s30" style="font-size: 30px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s36" style="font-size: 36px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s48" style="font-size: 48px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s60" style="font-size: 60px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s72" style="font-size: 72px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="demo-1">
|
|
||||||
<h1>Comfortaa Light</h1>
|
|
||||||
<div class="font-container">
|
|
||||||
<p class="letters">
|
|
||||||
abcdefghijklmnopqrstuvwxyz <br />
|
|
||||||
ABCDEFGHIJKLMNOPQRSTUVWXYZ <br /> 0123456789.:,;()*!?'@#<>$%&^+-=~
|
|
||||||
</p>
|
|
||||||
<p class="s10" style="font-size: 10px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s11" style="font-size: 11px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s12" style="font-size: 12px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s14" style="font-size: 14px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s18" style="font-size: 18px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s24" style="font-size: 24px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s30" style="font-size: 30px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s36" style="font-size: 36px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s48" style="font-size: 48px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s60" style="font-size: 60px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s72" style="font-size: 72px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="demo-2">
|
|
||||||
<h1>Comfortaa Bold</h1>
|
|
||||||
<div class="font-container">
|
|
||||||
<p class="letters">
|
|
||||||
abcdefghijklmnopqrstuvwxyz <br />
|
|
||||||
ABCDEFGHIJKLMNOPQRSTUVWXYZ <br /> 0123456789.:,;()*!?'@#<>$%&^+-=~
|
|
||||||
</p>
|
|
||||||
<p class="s10" style="font-size: 10px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s11" style="font-size: 11px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s12" style="font-size: 12px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s14" style="font-size: 14px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s18" style="font-size: 18px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s24" style="font-size: 24px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s30" style="font-size: 30px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s36" style="font-size: 36px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s48" style="font-size: 48px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s60" style="font-size: 60px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
<p class="s72" style="font-size: 72px;">The quick brown fox jumps over the lazy dog.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 642 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 600 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 603 KiB |
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue