engine_conf = node['docker-grid']['engine']
docker_ver = engine_conf['version']
docker_ver = '' if docker_ver.nil? || docker_ver == 'latest'
+if docker_ver.empty?
+ Chef::Log.warn('This docker-grid::engine installs the latest Docker engine.')
+else
+ Chef::Log.info("This docker-grid::engine installs the Docker engine: #{docker_ver}.")
+end
storage_driver = engine_conf['storage-driver']
userns_remap = engine_conf['userns-remap']
return
end
+::Chef::Recipe.send(:include, DockerGrid::Helper)
::Chef::Recipe.send(:include, PlatformUtils::Helper)
::Chef::Recipe.send(:include, PlatformUtils::VirtUtils)
end
if storage_driver == 'overlay2'
- if !docker_ver.empty? && Gem::Version.create(docker_ver.tr('~', '-')) < Gem::Version.create('1.12')
- # tr('~', '-') for Ubuntu.
+ if !docker_ver.empty? && gem_ver(docker_ver) < gem_ver('1.12')
Chef::Application.fatal!('Docker version must be 1.12 or later for overlay2 storage driver.') # and exit.
end
end
load_kernel_module('overlay') if storage_driver =~ /overlay2?/
if !userns_remap.nil? && !userns_remap.empty?
- if !docker_ver.empty? && Gem::Version.create(docker_ver.tr('~', '-')) < Gem::Version.create('1.10')
- # tr('~', '-') for Ubuntu.
+ if !docker_ver.empty? && gem_ver(docker_ver) < gem_ver('1.10')
Chef::Application.fatal!('Docker version must be 1.10 or later for userns-remap.') # and exit.
end
if platform_family == 'rhel' || platform == 'debian' || (platform == 'ubuntu' && platform_version == '14.04')
# Note: docker_ver.empty? -> the latest version
if docker_ver.empty? \
- || Gem::Version.create(docker_ver.tr('~', '-')) >= Gem::Version.create('1.12')
+ || gem_ver(docker_ver) >= gem_ver('1.12')
extra_options = extra_options.gsub(%r{-H\sfd://}, '') # for frozen string.
end
end
+if docker_ver.empty? \
+ || gem_ver(docker_ver) > gem_ver('18.06.99')
+ extra_options = extra_options.gsub(%r{-H\sfd://}, '-H unix://') # for frozen string.
+end
docker_opts.push(extra_options) if !extra_options.nil? && !extra_options.empty?