|`['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"`|
# 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"
# 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.'
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
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