| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- module Docs
- class Docker < UrlScraper
- self.type = 'simple'
- self.links = {
- home: 'https://docker.com/',
- code: 'https://github.com/docker/docker'
- }
- options[:trailing_slash] = true
- options[:fix_urls] = ->(url) do
- url.sub! %r{\.md/?(?=#|\z)}, '/'
- url.sub! '/index/', '/'
- url
- end
- options[:attribution] = <<-HTML
- © 2019 Docker, Inc.<br>
- Licensed under the Apache License, Version 2.0.<br>
- Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.<br>
- Docker, Inc. and other parties may also have trademark rights in other terms used herein.
- HTML
- version '19' do
- self.release = '19.03'
- self.base_url = "https://docs.docker.com/"
- html_filters.push 'docker/entries', 'docker/clean_html'
- options[:container] = '.wrapper .container-fluid .row'
- options[:only_patterns] = [/\Aget-started\//, /\Aengine\//, /\Acompose\//, /\Amachine\//, /\Anotary\//]
- options[:skip_patterns] = [/\Aengine\/api\/v/, /glossary/, /docker-ee/]
- options[:replace_paths] = {
- 'install/linux/ubuntu/' => 'install/linux/docker-ce',
- 'get-started/part1' => 'get-started',
- 'engine/installation/' => 'install',
- 'engine/installation/linux/linux-postinstall/' => 'install/linux',
- 'compose/overview/' => 'compose',
- 'docker-cloud/' => 'docker-hub',
- 'datacenter/install/linux/' => 'ee',
- 'engine/userguide/' => 'config/daemon',
- 'engine/admin/' => 'config/daemon',
- 'opensource/get-help/' => 'opensource',
- 'engine/tutorials/dockerimages/' => 'get-started',
- 'engine/admin/volumes/bind-mounts/' => 'storage',
- 'engine/tutorials/dockervolumes/' => 'storage',
- 'engine/admin/volumes/volumes/' => 'storage',
- 'engine/userguide/labels-custom-metadata/' => 'config',
- 'engine/userguide/eng-image/multistage-build/' => 'develop/develop-images',
- 'engine/swarm/networking/' => 'network',
- 'engine/admin/resource_constraints/' => 'config/containers',
- 'engine/admin/logging/overview/' => 'config/containers/logging',
- 'engine/userguide/eng-image/dockerfile_best-practices/' => 'develop/develop-images',
- 'engine/tutorials/dockerrepos/' => 'get-started',
- 'engine/userguide/networking/' => 'network',
- 'engine/userguide/networking/get-started-overlay/' => 'network',
- 'engine/reference/commandline/swarm_join_token/' => 'engine/reference/commandline',
- 'engine/understanding-docker/' => 'engine',
- 'engine/userguide/dockervolumes/' => 'storage',
- 'engine/installation/binaries/' => 'install/linux/docker-ce',
- 'engine/userguide/networking/default_network/dockerlinks/' => 'network',
- 'engine/reference/api/' => 'develop/sdk',
- 'engine/admin/systemd/' => 'config/daemon',
- 'engine/userguide/storagedriver/imagesandcontainers/' => 'storage/storagedriver',
- 'engine/api/' => 'develop/sdk',
- 'engine/userguide/networking/get-started-overlay' => 'network',
- 'engine/userguide/networking/overlay-security-model/' => 'network',
- 'engine/installation/linux/docker-ce/binaries/' => 'install/linux/docker-ce',
- 'engine/admin/volumes/' => 'storage/volumes/',
- 'engine/userguide/networking//' => 'network',
- 'engine/reference/commandline' => 'engine/reference/commandline/docker',
- 'engine/reference/commandline/' => 'engine/reference/commandline/docker/',
- }
- end
- version '18' do
- self.release = '18.09'
- self.base_url = "https://docs.docker.com/v#{release}/"
- html_filters.push 'docker/entries', 'docker/clean_html'
- options[:container] = '.wrapper .container-fluid .row'
- options[:only_patterns] = [/\Aget-started\//, /\Aengine\//, /\Acompose\//, /\Amachine\//, /\Anotary\//]
- options[:skip_patterns] = [/\Aengine\/api\/v/, /glossary/, /docker-ee/]
- options[:replace_paths] = {
- 'install/linux/ubuntu/' => 'install/linux/docker-ce',
- 'get-started/part1' => 'get-started',
- 'engine/installation/' => 'install',
- 'engine/installation/linux/linux-postinstall/' => 'install/linux',
- 'compose/overview/' => 'compose',
- 'datacenter/install/linux/' => 'ee',
- 'engine/userguide/' => 'config/daemon',
- 'engine/admin/' => 'config/daemon',
- 'opensource/get-help/' => 'opensource',
- 'engine/tutorials/dockerimages/' => 'get-started',
- 'engine/admin/volumes/bind-mounts/' => 'storage',
- 'engine/tutorials/dockervolumes/' => 'storage',
- 'engine/admin/volumes/volumes/' => 'storage',
- 'engine/userguide/labels-custom-metadata/' => 'config',
- 'engine/reference/api/' => 'develop/sdk',
- 'engine/userguide/eng-image/multistage-build/' => 'develop/develop-images',
- 'engine/swarm/networking/' => 'network',
- 'engine/admin/resource_constraints/' => 'config/containers',
- 'engine/admin/logging/overview/' => 'config/containers/logging',
- 'engine/userguide/eng-image/dockerfile_best-practices/' => 'develop/develop-images',
- 'engine/tutorials/dockerrepos/' => 'get-started',
- 'engine/userguide/networking/' => 'network',
- 'engine/userguide/networking/get-started-overlay/' => 'network',
- 'engine/understanding-docker/' => 'engine',
- 'engine/reference/commandline/swarm_join_token/' => 'engine/reference/commandline',
- 'engine/userguide/dockervolumes/' => 'storage',
- 'engine/admin/systemd/' => 'config/daemon',
- 'engine/userguide/storagedriver/imagesandcontainers/' => 'storage/storagedriver',
- 'engine/installation/binaries/' => 'install/linux/docker-ce',
- 'engine/userguide/networking/default_network/dockerlinks/' => 'network',
- 'engine/userguide/networking/overlay-security-model/' => 'network',
- 'engine/userguide/networking/get-started-overlay' => 'network',
- 'engine/api/' => 'develop/sdk',
- 'engine/installation/linux/docker-ce/binaries/' => 'install/linux/docker-ce',
- 'engine/admin/volumes/' => 'storage/volumes/',
- 'engine/userguide/networking//' => 'network',
- 'engine/reference/commandline' => 'engine/reference/commandline/docker',
- 'engine/reference/commandline/' => 'engine/reference/commandline/docker/',
- }
- end
- version '17' do
- self.release = '17.12'
- self.base_url = "https://docs.docker.com/v#{release}/"
- html_filters.push 'docker/entries', 'docker/clean_html'
- options[:container] = '.wrapper .container-fluid .row'
- options[:only_patterns] = [/\Aget-started\//, /\Aengine\//, /\Acompose\//, /\Amachine\//, /\Anotary\//]
- options[:skip_patterns] = [/\Aengine\/api\/v/, /glossary/, /docker-ee/]
- options[:replace_paths] = {
- 'get-started/part1' => 'get-started',
- 'engine/installation/' => 'install',
- 'engine/installation/linux/linux-postinstall/' => 'install/linux',
- 'opensource/get-help/' => 'opensource',
- 'engine/admin/volumes/volumes/' => 'storage',
- 'engine/tutorials/dockerimages/' => 'get-started',
- 'engine/admin/volumes/bind-mounts/' => 'storage',
- 'engine/tutorials/dockervolumes/' => 'storage',
- 'datacenter/install/aws/' => 'docker-for-aws',
- 'engine/userguide/' => 'config/daemon',
- 'engine/admin/' => 'config/daemon',
- 'engine/userguide/labels-custom-metadata/' => 'config',
- 'engine/userguide/eng-image/multistage-build/' => 'develop/develop-images',
- 'engine/swarm/networking/' => 'network',
- 'engine/admin/resource_constraints/' => 'config/containers',
- 'engine/admin/logging/overview/' => 'config/containers/logging',
- 'engine/understanding-docker/' => 'engine',
- 'engine/userguide/eng-image/dockerfile_best-practices/' => 'develop/develop-images',
- 'engine/tutorials/dockerrepos/' => 'get-started',
- 'engine/userguide/networking/' => 'network',
- 'engine/reference/commandline/swarm_join_token/' => 'edge/engine/reference/commandline',
- 'engine/userguide/networking/get-started-overlay/' => 'network',
- 'engine/userguide/dockervolumes/' => 'storage',
- 'engine/installation/binaries/' => 'install/linux/docker-ce',
- 'engine/userguide/networking/default_network/dockerlinks/' => 'network',
- 'engine/reference/api/' => 'develop/sdk',
- 'engine/admin/live-restore/' => 'config/containers',
- 'engine/api/' => 'develop/sdk',
- 'engine/userguide/networking/get-started-overlay' => 'network',
- 'security/security/' => 'engine/security',
- 'engine/installation/linux/docker-ce/binaries/' => 'install/linux/docker-ce',
- 'engine/reference/commandline/' => 'edge/engine/reference/commandline',
- 'engine/admin/systemd/' => 'config/daemon',
- 'engine/userguide/storagedriver/imagesandcontainers/' => 'storage/storagedriver',
- 'engine/userguide/networking/overlay-security-model/' => 'network',
- 'engine/admin/volumes/' => 'storage/volumes/',
- 'engine/userguide/networking//' => 'network',
- }
- end
- module OldOptions
- def self.included(klass)
- klass.options[:only_patterns] = [/\Aengine\//, /\Acompose\//, /\Amachine\//]
- klass.options[:skip_patterns] = [/\Aengine\/api\/v/, /\Aengine\/installation/]
- klass.options[:skip] = %w(
- /
- engine/userguide/
- engine/examples/
- engine/reference/
- engine/reference/api/
- engine/reference/api/docker_remote_api_v1.24/
- engine/getstarted/linux_install_help/
- machine/reference/
- machine/drivers/
- machine/examples/
- compose/reference/
- )
- klass.options[:replace_paths] = {
- 'engine/userguide/networking/dockernetworks/' => 'engine/userguide/networking/',
- 'engine/userguide/dockervolumes/' => 'engine/tutorials/dockervolumes/',
- 'engine/reference/logging/overview/' => 'engine/admin/logging/overview/',
- 'engine/reference/commandline/daemon/' => 'engine/reference/commandline/dockerd/',
- 'engine/reference/commandline/' => 'engine/reference/commandline/docker/',
- 'engine/reference/api/docker_remote_api/' => 'engine/api/',
- 'engine/swarm/how-swarm-mode-works/' => 'engine/swarm/how-swarm-mode-works/nodes/',
- 'engine/tutorials/dockerizing/' => 'engine/getstarted/step_one/',
- 'engine/tutorials/usingdocker/' => 'engine/getstarted/step_three/',
- 'engine/tutorials/dockerimages/' => 'engine/getstarted/step_four/',
- 'engine/tutorials/dockerrepos/' => 'engine/getstarted/step_six/'
- }
- end
- end
- version '1.13' do
- include OldOptions
- self.release = '1.13'
- self.base_url = "https://docs.docker.com/v#{self.version}/"
- html_filters.push 'docker/entries_old', 'docker/clean_html_old'
- options[:container] = '.container-fluid .row'
- end
- version '1.12' do
- include OldOptions
- self.release = '1.12'
- self.base_url = "https://docs.docker.com/v#{self.version}/"
- html_filters.push 'docker/entries_old', 'docker/clean_html_old'
- options[:container] = '.container-fluid .row'
- end
- version '1.11' do
- include OldOptions
- self.release = '1.11'
- self.base_url = "https://docs.docker.com/v#{self.version}/"
- html_filters.push 'docker/entries_very_old', 'docker/clean_html_very_old'
- options[:container] = '#docs'
- options[:only_patterns] << /\Aswarm\//
- end
- version '1.10' do
- include OldOptions
- self.release = '1.10'
- self.base_url = "https://docs.docker.com/v#{self.version}/"
- html_filters.push 'docker/entries_very_old', 'docker/clean_html_very_old'
- options[:container] = '#docs'
- options[:only_patterns] << /\Aswarm\//
- end
- def get_latest_version(opts)
- doc = fetch_doc('https://docs.docker.com/engine/release-notes/', opts)
- latest_version = doc.at_css('.content > section > h1[id^="version-"]').content.strip
- latest_version.rpartition(' ')[-1]
- end
- end
- end
|