OSDN Git Service

adds docker-ce-18.09 support.
[metasearch/grid-chef-repo.git] / cookbooks / docker-grid / recipes / engine.rb
index 34d5996..0c2e180 100644 (file)
@@ -35,6 +35,11 @@ enable_new_repo = node['docker-grid']['dockerproject']['enable_new_repo']
 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']
 
@@ -43,6 +48,7 @@ if engine_conf['skip_setup']
   return
 end
 
+::Chef::Recipe.send(:include, DockerGrid::Helper)
 ::Chef::Recipe.send(:include, PlatformUtils::Helper)
 ::Chef::Recipe.send(:include, PlatformUtils::VirtUtils)
 
@@ -74,16 +80,14 @@ if shell_out("cat /etc/mtab | grep -E '\s+/\s+zfs\s+'").exitstatus.zero?
 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
 
@@ -337,10 +341,14 @@ extra_options = engine_conf['daemon_extra_options']
 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?