Commit Graph

341 Commits

Author SHA1 Message Date
Sebastiaan van Stijn
573af666e4 Move fetching "library samples" to a separate stage
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-03-07 16:27:20 +01:00
Sebastiaan van Stijn
c7b9a54df9 Dockerfile: fix missing "boilerplate.txt" in build-stage
Although the docs still rendered ok, some pieces were missing
when generating the "samples", which resulted in warnings during
build:

```
Adding front-matter to ./_samples/library/rethinkdb/README.md ...
cat: can't open './_samples/boilerplate.txt': No such file or directory
Adding front-matter to ./_samples/library/tomcat/README.md ...
cat: can't open './_samples/boilerplate.txt': No such file or directory
```

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-03-07 15:15:13 +01:00
Sebastiaan van Stijn
7729a83889 Dockerfile: optimize for caching
The implementation of the Dockerfile first copied the current
version of the documentation, to be followed by fetching upstream
resources, and adding the archived documentation.

As a result, the build-cache was "busted" on every change that was
made locally, causing a full rebuild of both "fetching upstream resources",
building the reference documentation, and generating the archived
versions of the documentation.

With the changes made to the "fetch-upstream-resources.sh" script,
it's now possible to build those docs in advance (in a separate build-
stage), and append the pre-built docs _after_ the current version
of the documentation was built.

This patch updates the Dockerfile to build reference-docs and
archived docs in separate build-stages, optimizing the build for
caching (wich the assumption that no changes are made in upstream
resources between builds). Not only caused this builds to take longer
than needed, but each rebuild also caused new "dangling" images to
be created (in case of the "classic" builder), or new build-caches
to be created (when using BuildKit).

Note that when _deploying_ the documentation, no caching should be
used (to enforce a full rebuild of the documentation, and guarantee
that reference-docs are "fresh").

Before this change, rebuilding the documentation (after a previous
build, so with cache present) took ~185 seconds;

```
docker build -t docs .

[+] Building 184.7s (26/26) FINISHED

 => [builder 2/5] COPY . md_source                                                                                                                                                                                                    2.8s
 => [builder 3/5] RUN bash ./md_source/_scripts/fetch-upstream-resources.sh md_source                                                                                                                                                52.7s
 => [builder 4/5] RUN jekyll build -s md_source -d /usr/share/nginx/html --config md_source/_config.yml                                                                                                                             113.0s
 => [builder 5/5] RUN find /usr/share/nginx/html -type f -name '*.html' | grep -vE "v[0-9]+\." | while read i; do sed -i 's#href="https://docs.docker.com/#href="/#g' "$i"; done                                                      4.4s
 => CACHED [stage-1 2/8] COPY --from=docs/docker.github.io:nginx-onbuild /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf                                                                                                0.0s
 => CACHED [stage-1 3/8] COPY --from=docs/docker.github.io:v17.03 /usr/share/nginx/html /usr/share/nginx/html                                                                                                                         0.0s
 => CACHED [stage-1 4/8] COPY --from=docs/docker.github.io:v17.06 /usr/share/nginx/html /usr/share/nginx/html                                                                                                                         0.0s
 => CACHED [stage-1 5/8] COPY --from=docs/docker.github.io:v17.09 /usr/share/nginx/html /usr/share/nginx/html                                                                                                                         0.0s
 => CACHED [stage-1 6/8] COPY --from=docs/docker.github.io:v17.12 /usr/share/nginx/html /usr/share/nginx/html                                                                                                                         0.0s
 => CACHED [stage-1 7/8] COPY --from=docs/docker.github.io:v18.03 /usr/share/nginx/html /usr/share/nginx/html                                                                                                                         0.0s
 => [stage-1 8/8] COPY --from=builder /usr/share/nginx/html /usr/share/nginx/html                                                                                                                                                     3.7s
 => exporting to image                                                                                                                                                                                                                5.1s
 => => exporting layers                                                                                                                                                                                                               5.1s
 => => writing image sha256:70f77631001bd0271455f893b87dd75a1fd6f5db84a00feb8afe5ddf5a697d7d                                                                                                                                          0.0s
 => => naming to docker.io/library/docs                                                                                                                                                                                               0.0s
```

After this change, archives and reference-docs are using the build-cache,
and building was reduced to ~126 seconds (most of that taken by Jekyll to
generate the static HTML);

```
docker build -t docs .

+] Building 126.4s (30/30) FINISHED
...
 => CACHED [upstream-resources 1/4] COPY ./_scripts/fetch-upstream-resources.sh ./_scripts/                                                                                                                                           0.0s
 => CACHED [upstream-resources 2/4] COPY ./_config.yml .                                                                                                                                                                              0.0s
 => CACHED [upstream-resources 3/4] COPY ./_data/toc.yaml ./_data/                                                                                                                                                                    0.0s
 => CACHED [upstream-resources 4/4] RUN bash ./_scripts/fetch-upstream-resources.sh .                                                                                                                                                 0.0s
 => [current 2/4] COPY --from=upstream-resources /usr/src/app/md_source/. ./                                                                                                                                                          1.5s
 => [current 3/4] RUN jekyll build -d /usr/share/nginx/html                                                                                                                                                                         108.9s
 => [current 4/4] RUN find /usr/share/nginx/html -type f -name '*.html' | grep -vE "v[0-9]+\." | while read i; do sed -i 's#href="https://docs.docker.com/#href="/#g' "$i"; done                                                      4.8s
 => CACHED [deploybase 2/2] COPY --from=docs/docker.github.io:nginx-onbuild /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf                                                                                             0.0s
 => CACHED [archives 1/5] COPY --from=docs/docker.github.io:v17.03 /usr/share/nginx/html /usr/share/nginx/html                                                                                                                        0.0s
 => CACHED [archives 2/5] COPY --from=docs/docker.github.io:v17.06 /usr/share/nginx/html /usr/share/nginx/html                                                                                                                        0.0s
 => CACHED [archives 3/5] COPY --from=docs/docker.github.io:v17.09 /usr/share/nginx/html /usr/share/nginx/html                                                                                                                        0.0s
 => CACHED [archives 4/5] COPY --from=docs/docker.github.io:v17.12 /usr/share/nginx/html /usr/share/nginx/html                                                                                                                        0.0s
 => CACHED [archives 5/5] COPY --from=docs/docker.github.io:v18.03 /usr/share/nginx/html /usr/share/nginx/html                                                                                                                        0.0s
 => [deploy 1/1] COPY --from=current /usr/share/nginx/html /usr/share/nginx/html                                                                                                                                                      4.1s
 => exporting to image                                                                                                                                                                                                                1.9s
 => => exporting layers                                                                                                                                                                                                               1.9s
 => => writing image sha256:e76359b937fb4d956fb17e889a7333687929d4c9ae093909fe5630a8f3e4de64                                                                                                                                          0.0s
 => => naming to docker.io/library/docs                                                                                                                                                                                               0.0s
```

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-03-06 16:38:38 +01:00
Sebastiaan van Stijn
f98576eaa2 Dockerfile: use ARG to configure engine and distribution branches
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-03-06 15:15:14 +01:00
Sebastiaan van Stijn
5d8ce076f7 Dockerfile: remove use of $SOURCE env-var
This variable is no longer needed, as the scripts are
always executed relative to the current directory (`.`).

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-03-06 15:10:07 +01:00
Sebastiaan van Stijn
d386c4cd2c Dockerfile: use WORKDIR to simplify steps
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-03-06 15:02:29 +01:00
paigehargrave
1bd777e22d Update Dockerfile 2019-01-09 10:51:06 -05:00
Maria Bermudez
5515c2ba33 Update 18.03 tag 2018-11-07 14:15:52 -08:00
Maria Bermudez
169da400a1 Add new archive that's pointed to docs/docs-private for now - will need to be changed when we go live 2018-11-06 12:58:05 -08:00
Joao Fernandes
bb1b53897c Update archives.yml for 18.03 2018-03-22 16:52:53 -07:00
Misty Stanley-Jones
de9262b939 Add 17.09 archive to Dockerfile (#5660) 2018-01-03 11:47:32 -08:00
Misty Stanley-Jones
44d4cb7665 Improve ordering of master Dockerfile (#5630) 2017-12-27 10:13:44 -08:00
Misty Stanley-Jones
6051302b4d Use multistage build for master (#5369) 2017-12-26 23:17:44 -08:00
Misty Stanley-Jones
a30b95e49d Add API 1.33, API matrix 2017-10-17 21:34:07 -07:00
Misty Stanley-Jones
6aae2e4e84 Add pointer to latest API ref (#4897) 2017-10-16 15:04:24 -07:00
Misty Stanley-Jones
103a3f8003 17.03 archive setup (#3753) 2017-06-29 16:55:18 -07:00
John Mulhausen
089f17eade Add to shell call, Alpine necessity 2017-05-25 15:08:51 -07:00
John Mulhausen
f95cccd24a Update docs base description 2017-05-25 15:00:02 -07:00
Misty Stanley-Jones
9c648cf079 Docker 17.05 docs (#3092)
* Add Netlify build script

* Pull 'edge' stuff from master for now

* Add env-regex logging opt (#2688)

* Update Dockerfile to pull from 17.05 branch

* Update YAML files from 17.05.x branch

* Add scaffolding for 17.05 content

* Document highlights for 17.05

* Add v1.29 API

* Document multi-stage builds
2017-05-05 19:50:22 +00:00
Misty Stanley-Jones
10be60a80f Go back to small /edge (#2736)
* Go back to small /edge

* Update site front page

Add info about Editions
Reorganize components
Update headings

* Move logic of fetching content to a script

* Add v1.28 API

* Add info about versioned API
2017-04-13 18:58:56 -07:00
Misty Stanley-Jones
62d34e400b Update Dockerfile to build /edge 2017-04-05 17:45:44 -07:00
Misty Stanley-Jones
e796ce8148 Site-specific changes for Edge 2017-04-05 17:45:44 -07:00
Misty Stanley-Jones
dfc7f870c1 Use a different variable for svn than wget
The master branch is called trunk in svn parlance
and the directory structure is a little bit different.

Also trust the certificates for the https svn connections,
otherwise we may be prompted.

Fix Dockerfile in vnext-engine
2017-04-05 17:45:44 -07:00
Misty Stanley-Jones
184897095f Use a different variable for svn than wget
The master branch is called trunk in svn parlance
and the directory structure is a little bit different.

Also trust the certificates for the https svn connections,
otherwise we may be prompted.
2017-04-05 17:45:44 -07:00
Misty Stanley-Jones
cb0c69c9d5 Fix Dockerfile in vnext-engine 2017-04-05 17:45:44 -07:00
Misty Stanley-Jones
cff043f5a3 Use a different variable for svn than wget
The master branch is called trunk in svn parlance
and the directory structure is a little bit different.

Also trust the certificates for the https svn connections,
otherwise we may be prompted.
2017-04-05 17:45:44 -07:00
Misty Stanley-Jones
13004b9ed1 Take docker/docker references from master 2017-04-05 17:45:44 -07:00
Misty Stanley-Jones
e6aa7e3f50 Update distribution version in Dockerfile (#2632) 2017-04-05 11:20:49 -07:00
Victor Vieux
ad065409d9 bump api to 1.27 (#2461)
* bump api to 1.27

Signed-off-by: Victor Vieux <victorvieux@gmail.com>
2017-03-28 09:31:53 -07:00
Misty Stanley-Jones
fc343a81fc Update to new Docker version scheme (#1926) 2017-03-01 14:52:34 -08:00
John Mulhausen
a3dd8ff96e Switch to auto-building source of docs-base 2017-02-11 02:55:53 -08:00
John Mulhausen
69f622bb70 Move to GHP 112, nginx-based server, docs-base (#1515)
* Moves to GHP 112, nginx-based server

* Import official nginx instructions per @thaJeztah

* Reordering of commands per @thaJeztah

* Reordering of commands per @thaJeztah

* Make sure that at the end of each layer we only keep the one directory

* Forgot to use md_source when resolving conflicts

* Update Dockerfile

* Use base image, clean up cruft from docsarchive folder

* Update docs-base to be self-browseable, conf source of truth
2017-02-09 17:17:07 -08:00
Victor Vieux
80fa030ffd bump engine API to 1.26 (#1553)
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
2017-02-08 13:18:24 -08:00
John Mulhausen
b547d91606 Publish v1.12 archive 2017-02-01 15:56:44 -08:00
Adrien Duermael
edf388efc9 remove apidocs/layout after jekyll build
Signed-off-by: Adrien Duermael <adrien@duermael.com>
2017-01-26 12:02:33 -08:00
Adrien Duermael
900cd57a1c make links to https://docs.docker.com relative
All of them, not just the ones in /engine/extend & /engine/reference

Signed-off-by: Adrien Duermael <adrien@duermael.com>
2017-01-26 10:47:24 -08:00
Adrien Duermael
6129c4c255 remove apidocs/layouts after build (#1357)
* remove apidocs/layouts after build

Signed-off-by: Adrien Duermael <adrien@duermael.com>

* fixed keywords in swarm_manager_locking.md

Signed-off-by: Adrien Duermael <adrien@duermael.com>
2017-01-24 14:26:04 -08:00
Misty Stanley-Jones
48c384cede Don't fetch the registry api template (#1341) 2017-01-23 15:01:27 -08:00
Adrien Duermael
366fb5b964 Link fixes (#1291)
* fixed links in toc.yaml

Signed-off-by: Adrien Duermael <adrien@duermael.com>

* removed backslashed spaces in Dockerfile

Signed-off-by: Adrien Duermael <adrien@duermael.com>
2017-01-20 14:00:33 -08:00
John Mulhausen
ebe778b906 Update imports to work properly (#1221)
Update imports to work properly
2017-01-20 09:58:54 -08:00
John Mulhausen
35898701eb YAML-sourced CLI refdocs 2017-01-19 11:12:55 -08:00
Ben Firshman
f8dac1b53c Add automatically generated Engine API docs
Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2017-01-19 10:45:07 -08:00
Misty Stanley-Jones
4197fd8268 Update dockerfile vnext (#874)
* Merge pull request #731 from mstanleyjones/distribution_docs_from_upstream

Pull distribution reference docs from upstream repo

* Bump Engine ref docs branch to 1.13.x

Signed-off-by: Misty Stanley-Jones <misty@docker.com>
2017-01-19 10:43:39 -08:00
Adrien Duermael
41cdf339f6 CI - added tests for relative links [DO NOT MERGE] (#1052)
* CI - added tests for relative links

Signed-off-by: Adrien Duermael <adrien@duermael.com>

* fixes to check relative links properly

Signed-off-by: Adrien Duermael <adrien@duermael.com>

* /engine/extend/plugins/ -> /engine/extend/legacy_plugins/

Signed-off-by: Adrien Duermael <adrien@duermael.com>

* do not build /tests folder with Jekyll…

Signed-off-by: Adrien Duermael <adrien@duermael.com>

* list all problematic urls in each file

don’t stop at first error encountered

Signed-off-by: Adrien Duermael <adrien@duermael.com>

* removed “stack tasks” from menu (toc.yaml)

Signed-off-by: Adrien Duermael <adrien@duermael.com>

* fixed broken links

Signed-off-by: Adrien Duermael <adrien@duermael.com>

* fixed broken link in docker-for-mac/osxfs.md

Signed-off-by: Adrien Duermael <adrien@duermael.com>

* fixed broken links in /index.html

Signed-off-by: Adrien Duermael <adrien@duermael.com>
2017-01-17 13:11:15 -08:00
Adrien Duermael
1ef7132a6f exclude /apidocs/cloud-api-source when building
Signed-off-by: Adrien Duermael <adrien@duermael.com>
2017-01-11 14:46:06 -08:00
Adrien Duermael
609c66710b Fixed absolute links in external content (#886)
The files we’re pulling from docker/docker may include links to docs.docker.com. And we can’t forbid that because relative links wouldn’t make sense in the context of docker/docker repository in some situations. So let’s just fix these links right after get imported.

Signed-off-by: Adrien Duermael <adrien@duermael.com>
2016-12-15 17:58:30 -08:00
Adrien Duermael
5b8abceb56 don’t copy files to /_site (#871)
files in /usr/src/app/allvbuild and /_site are the same. Let’s just serve what’s in /usr/src/app/allvbuild.

Signed-off-by: Adrien Duermael <adrien@duermael.com>
2016-12-13 15:28:42 -08:00
Misty Stanley-Jones
f2857417d1 Merge remote-tracking branch 'upstream/master' into distribution_docs_from_upstream 2016-11-30 10:23:11 -08:00
Misty Stanley-Jones
554b2c9967 Pull distribution reference docs from upstream 2016-11-28 13:51:52 -08:00
Sebastiaan van Stijn
721f9d2aba Optimize Dockerfile
This optimizes the Dockerfile a bit by;

- putting the docs archives at the top to
  optimize caching and to prevent having
  to clone the github repository on each
  build. Note that '--no-cache' is needed
  to forcefully break the cache, but the
  archives should not frequently change
- grouping RUN lines to reduce image size.
- using a loop for the archived versions to
  reduce the amount of duplicated code.
- using the local files for the *current*
  version of the docs instead of the git
  clone from GitHub. this makes it also
  use the right source instead of "master"
- adding a .dockerignore to prevent busting
  the cache if not needed, and to prevent
  uploading the '.git' repository, which
  is not used for the "current" docs

Difference in size before/after;

    REPOSITORY     TAG     IMAGE ID      CREATED         SIZE
    docs           latest  36f6ad029e6a  3 minutes ago   1.722 GB
    docs-orig      latest  4f1a3e3fda4f  16 minutes ago  3.344 GB

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-11-22 00:20:02 +01:00