| @@ -1,11 +1,31 @@ |
| 1 | module Docs | 1 | module Docs |
| 2 | class Docker < UrlScraper | 2 | class Docker < UrlScraper |
| | 3 | include MultipleBaseUrls |
| | 4 | |
| | 5 | self.name = 'Docker' |
| 3 | self.type = 'simple' | 6 | self.type = 'simple' |
| | 7 | self.release = '20.10.6' |
| | 8 | |
| | 9 | self.base_urls = [ |
| | 10 | 'https://docs.docker.com/', |
| | 11 | 'https://docs.docker.com/machine/' |
| | 12 | ] |
| | 13 | |
| 4 | self.links = { | 14 | self.links = { |
| 5 | home: 'https://docker.com/', | 15 | home: 'https://docker.com/', |
| 6 | code: 'https://github.com/docker/docker' | 16 | code: 'https://github.com/docker/docker' |
| 7 | } | 17 | } |
| 8 | | 18 | |
| | 19 | html_filters.push 'docker/entries', 'docker/clean_html' |
| | 20 | |
| | 21 | options[:only_patterns] = [/\Aget-started\//, /\Aengine\//, /\Acompose\//, /\Amachine\//, /\Anotary\//] |
| | 22 | |
| | 23 | options[:skip_patterns] = [/\Aengine\/api\/v/, /glossary/, /docker-ee/] |
| | 24 | |
| | 25 | options[:skip] = [ |
| | 26 | 'engine/userguide/networking/get-started-overlay/' |
| | 27 | ] |
| | 28 | |
| 9 | options[:trailing_slash] = true | 29 | options[:trailing_slash] = true |
| 10 | | 30 | |
| 11 | options[:fix_urls] = ->(url) do | 31 | options[:fix_urls] = ->(url) do |
| @@ -21,242 +41,54 @@ module Docs · 9 unmodified lines |
| 21 | Docker, Inc. and other parties may also have trademark rights in other terms used herein. | 41 | Docker, Inc. and other parties may also have trademark rights in other terms used herein. |
| 22 | HTML | 42 | HTML |
| 23 | | 43 | |
| | 44 | options[:replace_paths] = { |
| | 45 | 'engine/userguide/' => 'config/daemon', |
| | 46 | 'engine/userguide/labels-custom-metadata/' => 'config', |
| | 47 | 'engine/swarm/networking/' => 'network/overlay', |
| | 48 | 'engine/userguide/eng-image/dockerfile_best-practices/' => 'develop/develop-images/dockerfile_best-practices/', |
| | 49 | 'engine/userguide/networking/get-started-overlay/' => 'network/network-tutorial-overlay/', |
| | 50 | 'engine/userguide/networking/' => 'network/', |
| | 51 | 'engine/reference/api/' => 'develop/sdk', |
| | 52 | 'engine/api/latest/' => 'develop/sdk', |
| | 53 | 'get-started/part3/' => 'get-started/04_sharing_app/', |
| | 54 | 'engine/security/https/' => 'engine/security/protect-access/', |
| | 55 | 'compose/aspnet-mssql-compose/' => 'samples/aspnet-mssql-compose/', |
| | 56 | 'engine/examples/dotnetcore/' => 'samples/dotnetcore/' |
| | 57 | } |
| | 58 | |
| 24 | version '19' do | 59 | version '19' do |
| 25 | self.release = '19.03' | 60 | self.release = '19.03' |
| 26 | self.base_url = "https://docs.docker.com/" | 61 | self.base_url = "https://docs.docker.com" |
| 27 | | | |
| 28 | html_filters.push 'docker/entries', 'docker/clean_html' | | |
| 29 | | | |
| 30 | options[:container] = '.wrapper .container-fluid .row' | | |
| 31 | | | |
| 32 | options[:only_patterns] = [/\Aget-started\//, /\Aengine\//, /\Acompose\//, /\Amachine\//, /\Anotary\//] | | |
| 33 | options[:skip_patterns] = [/\Aengine\/api\/v/, /glossary/, /docker-ee/] | | |
| 34 | | | |
| 35 | options[:replace_paths] = { | | |
| 36 | 'install/linux/ubuntu/' => 'install/linux/docker-ce', | | |
| 37 | 'get-started/part1' => 'get-started', | | |
| 38 | 'engine/installation/' => 'install', | | |
| 39 | 'engine/installation/linux/linux-postinstall/' => 'install/linux', | | |
| 40 | 'compose/overview/' => 'compose', | | |
| 41 | 'docker-cloud/' => 'docker-hub', | | |
| 42 | 'datacenter/install/linux/' => 'ee', | | |
| 43 | 'engine/userguide/' => 'config/daemon', | | |
| 44 | 'engine/admin/' => 'config/daemon', | | |
| 45 | 'opensource/get-help/' => 'opensource', | | |
| 46 | 'engine/tutorials/dockerimages/' => 'get-started', | | |
| 47 | 'engine/admin/volumes/bind-mounts/' => 'storage', | | |
| 48 | 'engine/tutorials/dockervolumes/' => 'storage', | | |
| 49 | 'engine/admin/volumes/volumes/' => 'storage', | | |
| 50 | 'engine/userguide/labels-custom-metadata/' => 'config', | | |
| 51 | 'engine/userguide/eng-image/multistage-build/' => 'develop/develop-images', | | |
| 52 | 'engine/swarm/networking/' => 'network', | | |
| 53 | 'engine/admin/resource_constraints/' => 'config/containers', | | |
| 54 | 'engine/admin/logging/overview/' => 'config/containers/logging', | | |
| 55 | 'engine/userguide/eng-image/dockerfile_best-practices/' => 'develop/develop-images', | | |
| 56 | 'engine/tutorials/dockerrepos/' => 'get-started', | | |
| 57 | 'engine/userguide/networking/' => 'network', | | |
| 58 | 'engine/userguide/networking/get-started-overlay/' => 'network', | | |
| 59 | 'engine/reference/commandline/swarm_join_token/' => 'engine/reference/commandline', | | |
| 60 | 'engine/understanding-docker/' => 'engine', | | |
| 61 | 'engine/userguide/dockervolumes/' => 'storage', | | |
| 62 | 'engine/installation/binaries/' => 'install/linux/docker-ce', | | |
| 63 | 'engine/userguide/networking/default_network/dockerlinks/' => 'network', | | |
| 64 | 'engine/reference/api/' => 'develop/sdk', | | |
| 65 | 'engine/admin/systemd/' => 'config/daemon', | | |
| 66 | 'engine/userguide/storagedriver/imagesandcontainers/' => 'storage/storagedriver', | | |
| 67 | 'engine/api/' => 'develop/sdk', | | |
| 68 | 'engine/userguide/networking/get-started-overlay' => 'network', | | |
| 69 | 'engine/userguide/networking/overlay-security-model/' => 'network', | | |
| 70 | 'engine/installation/linux/docker-ce/binaries/' => 'install/linux/docker-ce', | | |
| 71 | 'engine/admin/volumes/' => 'storage/volumes/', | | |
| 72 | 'engine/userguide/networking//' => 'network', | | |
| 73 | 'engine/reference/commandline' => 'engine/reference/commandline/docker', | | |
| 74 | 'engine/reference/commandline/' => 'engine/reference/commandline/docker/', | | |
| 75 | } | | |
| 76 | end | 62 | end |
| 77 | | 63 | |
| 78 | version '18' do | 64 | version '18' do |
| 79 | self.release = '18.09' | 65 | self.release = '18.09' |
| 80 | self.base_url = "https://docs.docker.com/v#{release}/" | 66 | self.base_url = "https://docs.docker.com" |
| 81 | | | |
| 82 | html_filters.push 'docker/entries', 'docker/clean_html' | | |
| 83 | | | |
| 84 | options[:container] = '.wrapper .container-fluid .row' | | |
| 85 | | | |
| 86 | options[:only_patterns] = [/\Aget-started\//, /\Aengine\//, /\Acompose\//, /\Amachine\//, /\Anotary\//] | | |
| 87 | options[:skip_patterns] = [/\Aengine\/api\/v/, /glossary/, /docker-ee/] | | |
| 88 | | | |
| 89 | options[:replace_paths] = { | | |
| 90 | 'install/linux/ubuntu/' => 'install/linux/docker-ce', | | |
| 91 | 'get-started/part1' => 'get-started', | | |
| 92 | 'engine/installation/' => 'install', | | |
| 93 | 'engine/installation/linux/linux-postinstall/' => 'install/linux', | | |
| 94 | 'compose/overview/' => 'compose', | | |
| 95 | 'datacenter/install/linux/' => 'ee', | | |
| 96 | 'engine/userguide/' => 'config/daemon', | | |
| 97 | 'engine/admin/' => 'config/daemon', | | |
| 98 | 'opensource/get-help/' => 'opensource', | | |
| 99 | 'engine/tutorials/dockerimages/' => 'get-started', | | |
| 100 | 'engine/admin/volumes/bind-mounts/' => 'storage', | | |
| 101 | 'engine/tutorials/dockervolumes/' => 'storage', | | |
| 102 | 'engine/admin/volumes/volumes/' => 'storage', | | |
| 103 | 'engine/userguide/labels-custom-metadata/' => 'config', | | |
| 104 | 'engine/reference/api/' => 'develop/sdk', | | |
| 105 | 'engine/userguide/eng-image/multistage-build/' => 'develop/develop-images', | | |
| 106 | 'engine/swarm/networking/' => 'network', | | |
| 107 | 'engine/admin/resource_constraints/' => 'config/containers', | | |
| 108 | 'engine/admin/logging/overview/' => 'config/containers/logging', | | |
| 109 | 'engine/userguide/eng-image/dockerfile_best-practices/' => 'develop/develop-images', | | |
| 110 | 'engine/tutorials/dockerrepos/' => 'get-started', | | |
| 111 | 'engine/userguide/networking/' => 'network', | | |
| 112 | 'engine/userguide/networking/get-started-overlay/' => 'network', | | |
| 113 | 'engine/understanding-docker/' => 'engine', | | |
| 114 | 'engine/reference/commandline/swarm_join_token/' => 'engine/reference/commandline', | | |
| 115 | 'engine/userguide/dockervolumes/' => 'storage', | | |
| 116 | 'engine/admin/systemd/' => 'config/daemon', | | |
| 117 | 'engine/userguide/storagedriver/imagesandcontainers/' => 'storage/storagedriver', | | |
| 118 | 'engine/installation/binaries/' => 'install/linux/docker-ce', | | |
| 119 | 'engine/userguide/networking/default_network/dockerlinks/' => 'network', | | |
| 120 | 'engine/userguide/networking/overlay-security-model/' => 'network', | | |
| 121 | 'engine/userguide/networking/get-started-overlay' => 'network', | | |
| 122 | 'engine/api/' => 'develop/sdk', | | |
| 123 | 'engine/installation/linux/docker-ce/binaries/' => 'install/linux/docker-ce', | | |
| 124 | 'engine/admin/volumes/' => 'storage/volumes/', | | |
| 125 | 'engine/userguide/networking//' => 'network', | | |
| 126 | 'engine/reference/commandline' => 'engine/reference/commandline/docker', | | |
| 127 | 'engine/reference/commandline/' => 'engine/reference/commandline/docker/', | | |
| 128 | } | | |
| 129 | end | 67 | end |
| 130 | | 68 | |
| 131 | version '17' do | 69 | version '17' do |
| 132 | self.release = '17.12' | 70 | self.release = '17.12' |
| 133 | self.base_url = "https://docs.docker.com/v#{release}/" | 71 | self.base_url = "https://docs.docker.com" |
| 134 | | | |
| 135 | html_filters.push 'docker/entries', 'docker/clean_html' | | |
| 136 | | | |
| 137 | options[:container] = '.wrapper .container-fluid .row' | | |
| 138 | | | |
| 139 | options[:only_patterns] = [/\Aget-started\//, /\Aengine\//, /\Acompose\//, /\Amachine\//, /\Anotary\//] | | |
| 140 | options[:skip_patterns] = [/\Aengine\/api\/v/, /glossary/, /docker-ee/] | | |
| 141 | | | |
| 142 | options[:replace_paths] = { | | |
| 143 | 'get-started/part1' => 'get-started', | | |
| 144 | 'engine/installation/' => 'install', | | |
| 145 | 'engine/installation/linux/linux-postinstall/' => 'install/linux', | | |
| 146 | 'opensource/get-help/' => 'opensource', | | |
| 147 | 'engine/admin/volumes/volumes/' => 'storage', | | |
| 148 | 'engine/tutorials/dockerimages/' => 'get-started', | | |
| 149 | 'engine/admin/volumes/bind-mounts/' => 'storage', | | |
| 150 | 'engine/tutorials/dockervolumes/' => 'storage', | | |
| 151 | 'datacenter/install/aws/' => 'docker-for-aws', | | |
| 152 | 'engine/userguide/' => 'config/daemon', | | |
| 153 | 'engine/admin/' => 'config/daemon', | | |
| 154 | 'engine/userguide/labels-custom-metadata/' => 'config', | | |
| 155 | 'engine/userguide/eng-image/multistage-build/' => 'develop/develop-images', | | |
| 156 | 'engine/swarm/networking/' => 'network', | | |
| 157 | 'engine/admin/resource_constraints/' => 'config/containers', | | |
| 158 | 'engine/admin/logging/overview/' => 'config/containers/logging', | | |
| 159 | 'engine/understanding-docker/' => 'engine', | | |
| 160 | 'engine/userguide/eng-image/dockerfile_best-practices/' => 'develop/develop-images', | | |
| 161 | 'engine/tutorials/dockerrepos/' => 'get-started', | | |
| 162 | 'engine/userguide/networking/' => 'network', | | |
| 163 | 'engine/reference/commandline/swarm_join_token/' => 'edge/engine/reference/commandline', | | |
| 164 | 'engine/userguide/networking/get-started-overlay/' => 'network', | | |
| 165 | 'engine/userguide/dockervolumes/' => 'storage', | | |
| 166 | 'engine/installation/binaries/' => 'install/linux/docker-ce', | | |
| 167 | 'engine/userguide/networking/default_network/dockerlinks/' => 'network', | | |
| 168 | 'engine/reference/api/' => 'develop/sdk', | | |
| 169 | 'engine/admin/live-restore/' => 'config/containers', | | |
| 170 | 'engine/api/' => 'develop/sdk', | | |
| 171 | 'engine/userguide/networking/get-started-overlay' => 'network', | | |
| 172 | 'security/security/' => 'engine/security', | | |
| 173 | 'engine/installation/linux/docker-ce/binaries/' => 'install/linux/docker-ce', | | |
| 174 | 'engine/reference/commandline/' => 'edge/engine/reference/commandline', | | |
| 175 | 'engine/admin/systemd/' => 'config/daemon', | | |
| 176 | 'engine/userguide/storagedriver/imagesandcontainers/' => 'storage/storagedriver', | | |
| 177 | 'engine/userguide/networking/overlay-security-model/' => 'network', | | |
| 178 | 'engine/admin/volumes/' => 'storage/volumes/', | | |
| 179 | 'engine/userguide/networking//' => 'network', | | |
| 180 | } | | |
| 181 | end | | |
| 182 | | | |
| 183 | module OldOptions | | |
| 184 | def self.included(klass) | | |
| 185 | klass.options[:only_patterns] = [/\Aengine\//, /\Acompose\//, /\Amachine\//] | | |
| 186 | klass.options[:skip_patterns] = [/\Aengine\/api\/v/, /\Aengine\/installation/] | | |
| 187 | klass.options[:skip] = %w( | | |
| 188 | / | | |
| 189 | engine/userguide/ | | |
| 190 | engine/examples/ | | |
| 191 | engine/reference/ | | |
| 192 | engine/reference/api/ | | |
| 193 | engine/reference/api/docker_remote_api_v1.24/ | | |
| 194 | engine/getstarted/linux_install_help/ | | |
| 195 | machine/reference/ | | |
| 196 | machine/drivers/ | | |
| 197 | machine/examples/ | | |
| 198 | compose/reference/ | | |
| 199 | ) | | |
| 200 | klass.options[:replace_paths] = { | | |
| 201 | 'engine/userguide/networking/dockernetworks/' => 'engine/userguide/networking/', | | |
| 202 | 'engine/userguide/dockervolumes/' => 'engine/tutorials/dockervolumes/', | | |
| 203 | 'engine/reference/logging/overview/' => 'engine/admin/logging/overview/', | | |
| 204 | 'engine/reference/commandline/daemon/' => 'engine/reference/commandline/dockerd/', | | |
| 205 | 'engine/reference/commandline/' => 'engine/reference/commandline/docker/', | | |
| 206 | 'engine/reference/api/docker_remote_api/' => 'engine/api/', | | |
| 207 | 'engine/swarm/how-swarm-mode-works/' => 'engine/swarm/how-swarm-mode-works/nodes/', | | |
| 208 | 'engine/tutorials/dockerizing/' => 'engine/getstarted/step_one/', | | |
| 209 | 'engine/tutorials/usingdocker/' => 'engine/getstarted/step_three/', | | |
| 210 | 'engine/tutorials/dockerimages/' => 'engine/getstarted/step_four/', | | |
| 211 | 'engine/tutorials/dockerrepos/' => 'engine/getstarted/step_six/' | | |
| 212 | } | | |
| 213 | end | | |
| 214 | end | 72 | end |
| 215 | | 73 | |
| 216 | version '1.13' do | 74 | version '1.13' do |
| 217 | include OldOptions | | |
| 218 | | | |
| 219 | self.release = '1.13' | 75 | self.release = '1.13' |
| 220 | self.base_url = "https://docs.docker.com/v#{self.version}/" | 76 | self.base_url = "https://docs.docker.com" |
| 221 | | | |
| 222 | html_filters.push 'docker/entries_old', 'docker/clean_html_old' | | |
| 223 | | | |
| 224 | options[:container] = '.container-fluid .row' | | |
| 225 | end | 77 | end |
| 226 | | 78 | |
| 227 | version '1.12' do | 79 | version '1.12' do |
| 228 | include OldOptions | | |
| 229 | | | |
| 230 | self.release = '1.12' | 80 | self.release = '1.12' |
| 231 | self.base_url = "https://docs.docker.com/v#{self.version}/" | 81 | self.base_url = "https://docs.docker.com" |
| 232 | | | |
| 233 | html_filters.push 'docker/entries_old', 'docker/clean_html_old' | | |
| 234 | | | |
| 235 | options[:container] = '.container-fluid .row' | | |
| 236 | end | 82 | end |
| 237 | | 83 | |
| 238 | version '1.11' do | 84 | version '1.11' do |
| 239 | include OldOptions | | |
| 240 | | | |
| 241 | self.release = '1.11' | 85 | self.release = '1.11' |
| 242 | self.base_url = "https://docs.docker.com/v#{self.version}/" | 86 | self.base_url = "https://docs.docker.com" |
| 243 | | | |
| 244 | html_filters.push 'docker/entries_very_old', 'docker/clean_html_very_old' | | |
| 245 | | | |
| 246 | options[:container] = '#docs' | | |
| 247 | options[:only_patterns] << /\Aswarm\// | | |
| 248 | end | 87 | end |
| 249 | | 88 | |
| 250 | version '1.10' do | 89 | version '1.10' do |
| 251 | include OldOptions | | |
| 252 | | | |
| 253 | self.release = '1.10' | 90 | self.release = '1.10' |
| 254 | self.base_url = "https://docs.docker.com/v#{self.version}/" | 91 | self.base_url = "https://docs.docker.com" |
| 255 | | | |
| 256 | html_filters.push 'docker/entries_very_old', 'docker/clean_html_very_old' | | |
| 257 | | | |
| 258 | options[:container] = '#docs' | | |
| 259 | options[:only_patterns] << /\Aswarm\// | | |
| 260 | end | 92 | end |
| 261 | | 93 | |
| 262 | def get_latest_version(opts) | 94 | def get_latest_version(opts) |