OSDN Git Service

adds the latest docker-compose installation.
authorwhitestar <whitestar@users.osdn.me>
Wed, 22 Aug 2018 12:32:15 +0000 (21:32 +0900)
committerwhitestar <whitestar@users.osdn.me>
Wed, 22 Aug 2018 12:32:15 +0000 (21:32 +0900)
cookbooks/docker-grid/README.md
cookbooks/docker-grid/recipes/compose.rb

index 500c5f6..3d05596 100644 (file)
@@ -51,7 +51,7 @@ This cookbook sets up Docker engine etc.
 |`['docker-grid']['compose']['install_flavor']`|String|`'dockerproject'` or `'os-repository'` or `'pypi'`|`'dockerproject'`|
 |`['docker-grid']['compose']['skip_setup']`|Boolean||`false`|
 |`['docker-grid']['compose']['auto_upgrade']`|Boolean|upgrade/reinstall the docker-compose automatically. Note: this flag is ignored in the case of `os-repository`.|`false`|
-|`['docker-grid']['compose']['version']`|String|Note: this version is ignored in the case of `os-repository`, do not use empty value.|`'1.21.1'`|
+|`['docker-grid']['compose']['version']`|String|Note: this version is ignored in the case of `os-repository`. `''` (empty) means the latest version. This version is ignored in the case of `'os-repository'`.|`'1.21.1'`|
 |`['docker-grid']['compose']['release_base_url']`|String||`"https://github.com/docker/compose/releases/download/#{['docker-grid']['compose']['version']}"`|
 |`['docker-grid']['compose']['release_url']`|String||`"#{node['docker-grid']['compose']['release_base_url']}/docker-compose-#{node['kernel']['name']}-#{node['kernel']['machine']}"`|
 |`['docker-grid']['compose']['home_dir']`|String||`'/opt/docker-compose'`|
index bc1f149..e83fa5c 100644 (file)
@@ -78,8 +78,20 @@ when 'dockerproject'
   release_url = node['docker-grid']['compose']['release_url']
   expected_ver = release_url.match(/(\d+\.\d+.\d+)/)
   expected_ver = expected_ver[1] unless expected_ver.nil?
-  # TODO: latest version
-  # %x(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r .tag_name).chomp
+  # latest version
+  if expected_ver.nil?
+    pkgs = ['jq']
+    pkgs.prepend('epel-release') if node['platform_family'] == 'rhel'
+    pkgs.each {|pkg|
+      resources(package: pkg) rescue package pkg do
+        action :install
+      end
+    }
+
+    result = shell_out!('curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r .tag_name')
+    expected_ver = result.stdout.chomp if result.exitstatus.zero? && !result.stdout.chomp.empty?
+    release_url = "https://github.com/docker/compose/releases/download/#{expected_ver}/docker-compose-#{node['kernel']['name']}-#{node['kernel']['machine']}"
+  end
 
   execute 'install_docker_compose' do
     user 'root'
@@ -113,6 +125,6 @@ when 'pypi'
     command "pip install docker-compose#{pin_ver}"
     action :run
     not_if "pip list | grep docker-compose | grep '(#{expected_ver})'" unless expected_ver.empty?
-    not_if "pip list | grep docker-compose" unless auto_upgrade
+    not_if 'pip list | grep docker-compose' unless auto_upgrade
   end
 end