OSDN Git Service

adds the ['docker-grid']['compose']['version'] attribute.
authorwhitestar <whitestar@users.osdn.me>
Wed, 22 Aug 2018 03:30:37 +0000 (12:30 +0900)
committerwhitestar <whitestar@users.osdn.me>
Wed, 22 Aug 2018 03:30:37 +0000 (12:30 +0900)
cookbooks/docker-grid/CHANGELOG.md
cookbooks/docker-grid/README.md
cookbooks/docker-grid/attributes/default.rb
cookbooks/docker-grid/recipes/compose.rb

index bde2551..ee6341e 100644 (file)
@@ -3,6 +3,7 @@
 1.2.1
 -----
 - adds docker-compose cleanup before installing it.
+- adds the `['docker-grid']['compose']['version']` attribute.
 
 1.2.0
 -----
index 6466577..500c5f6 100644 (file)
@@ -50,8 +50,9 @@ This cookbook sets up Docker engine etc.
 |`['docker-grid']['yum_repo']['gpgkey']`|String|for the old repository only.|`'https://yum.dockerproject.org/gpg'`|
 |`['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.|`false`|
-|`['docker-grid']['compose']['release_base_url']`|String||`'https://github.com/docker/compose/releases/download/1.9.0'`|
+|`['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']['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'`|
 |`['docker-grid']['compose']['app_dir']`|String||`"#{node['docker-grid']['compose']['home_dir']}/app"`|
index e5eb448..244622f 100644 (file)
@@ -58,7 +58,8 @@ default['docker-grid']['compose']['skip_setup'] = false
 #   os-repository (CentOS): none.
 default['docker-grid']['compose']['auto_upgrade'] = false
 # latest: 'https://github.com/docker/compose/releases/download/1.22.0'
-default['docker-grid']['compose']['release_base_url'] = 'https://github.com/docker/compose/releases/download/1.21.2'
+default['docker-grid']['compose']['version'] = '1.21.2'
+default['docker-grid']['compose']['release_base_url'] = "https://github.com/docker/compose/releases/download/#{node['docker-grid']['compose']['version']}"
 default['docker-grid']['compose']['release_url'] = "#{node['docker-grid']['compose']['release_base_url']}/docker-compose-#{node['kernel']['name']}-#{node['kernel']['machine']}"
 default['docker-grid']['compose']['home_dir'] = '/opt/docker-compose'
 default['docker-grid']['compose']['app_dir'] = "#{node['docker-grid']['compose']['home_dir']}/app"
index c341f29..06b5334 100644 (file)
@@ -20,6 +20,7 @@
 # See: https://docs.docker.com/compose/install/
 
 install_flavor = node['docker-grid']['compose']['install_flavor']
+auto_upgrade = node['docker-grid']['compose']['auto_upgrade']
 
 if node['docker-grid']['compose']['skip_setup']
   log 'Skip the Docker Compose setup.'
@@ -74,14 +75,14 @@ end
 
 case install_flavor
 when 'dockerproject'
-  excepted_ver = node['docker-grid']['compose']['release_url'].match(/(\d+\.\d+.\d+)/)[1]
+  expected_ver = node['docker-grid']['compose']['release_url'].match(/(\d+\.\d+.\d+)/)[1]
 
   execute 'install_docker_compose' do
     user 'root'
     command "curl -L \"#{node['docker-grid']['compose']['release_url']}\" -o #{docker_compose_path} && chmod +x #{docker_compose_path}"
     action :run
-    not_if "#{docker_compose_path} -v | grep #{excepted_ver},"
-    not_if { ::File.exist?(docker_compose_path) } unless node['docker-grid']['compose']['auto_upgrade']
+    not_if "#{docker_compose_path} -v | grep #{expected_ver},"
+    not_if { ::File.exist?(docker_compose_path) } unless auto_upgrade
   end
 
   # for sudo secure_path on RHEL family OS
@@ -90,18 +91,24 @@ when 'dockerproject'
     only_if { node['platform_family'] == 'rhel' }
   end
 when 'os-repository'
+  act = auto_upgrade ? :upgrade : :install
   package 'docker-compose' do
-    action :install
+    action act
   end
 when 'pypi'
+  expected_ver = node['docker-grid']['compose']['version']
+  expected_ver = '' if expected_ver.nil?
+  pin_ver = expected_ver.empty? ? '' : "==#{expected_ver}"
+
   include_recipe 'platform_utils::pip'
 
   # Note: installed to /usr/local/bin/docker-compose
   execute 'pip_install_docker_compose' do
     user 'root'
     environment 'HOME' => '/root'  # = sudo -H
-    command 'pip install docker-compose'
+    command "pip install docker-compose#{pin_ver}"
     action :run
-    not_if 'pip list | grep docker-compose'
+    not_if "pip list | grep docker-compose | grep '(#{expected_ver})'" unless expected_ver.empty?
+    not_if "pip list | grep docker-compose" unless auto_upgrade
   end
 end