OSDN Git Service

Bug fix: Ubuntu 14.04 LTS support. docker-grid-0.3.6
authorwhitestar <whitestar@gaea.test>
Wed, 15 Feb 2017 12:42:40 +0000 (21:42 +0900)
committerwhitestar <whitestar@gaea.test>
Wed, 15 Feb 2017 12:42:40 +0000 (21:42 +0900)
cookbooks/docker-grid/CHANGELOG.md
cookbooks/docker-grid/metadata.rb
cookbooks/docker-grid/recipes/engine.rb
cookbooks/docker-grid/templates/default/etc/default/docker [new file with mode: 0644]
cookbooks/docker-grid/templates/default/etc/systemd/system/docker.service.d/override.conf

index fae5ef2..cdafd4d 100644 (file)
@@ -1,5 +1,9 @@
 # docker-grid CHANGELOG
 
+0.3.6
+-----
+-
+
 0.3.5
 -----
 - adds the `['docker-grid']['engine']['skip_setup']` attribute.
index 09bd290..ee88c82 100644 (file)
@@ -5,7 +5,7 @@ maintainer_email ''
 license          'Apache 2.0'
 description      'Installs/Configures Docker Engine.'
 long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
-version          '0.3.5'
+version          '0.3.6'
 source_url       'http://scm.osdn.jp/gitroot/metasearch/grid-chef-repo.git'
 issues_url       'https://osdn.jp/projects/metasearch/ticket'
 
@@ -15,5 +15,5 @@ end
 
 supports 'ubuntu', '>= 14.04'
 
-depends 'platform_utils', '>= 0.4.2'
+depends 'platform_utils', '>= 0.4.4'
 depends 'ssl_cert', '>= 0.3.2'
index e494ad7..f242f01 100644 (file)
@@ -98,23 +98,6 @@ bash 'clean_up_docker0_bridge' do
   action :nothing
 end
 
-directory '/etc/systemd/system/docker.service.d' do
-  owner 'root'
-  group 'root'
-  mode '0755'
-  action :create
-end
-
-template '/etc/systemd/system/docker.service.d/override.conf' do
-  source  'etc/systemd/system/docker.service.d/override.conf'
-  owner 'root'
-  group 'root'
-  mode '0644'
-  not_if { node['docker-grid']['install_flavor'] == 'os-repository' && node['platform_family'] == 'rhel' }
-  notifies :run, 'bash[systemctl_daemon-reload]', :immediately
-  notifies :restart, 'service[docker]'
-end
-
 case node['platform_family']
 when 'rhel'
   if node['docker-grid']['install_flavor'] == 'dockerproject'
@@ -258,13 +241,66 @@ when 'debian'
 
   resources(package: pkg_name) rescue package pkg_name do
     action :install
-    options '--allow-downgrades'
+    options '--allow-downgrades' if node['platform_version'] >= '16.04'  # LTS (xenial)
     version docker_ver
     notifies :run, 'bash[clean_up_docker0_bridge]', :before
   end
 end
 
+docker_opts = []
+
+storage_driver = node['docker-grid']['engine']['storage-driver']
+docker_opts.push("--storage-driver=#{storage_driver}") if !storage_driver.nil? && !storage_driver.empty?
+
+userns_remap = node['docker-grid']['engine']['userns-remap']
+docker_opts.push("--userns-remap=#{userns_remap}") if !userns_remap.nil? && !userns_remap.empty?
+
+extra_options = node['docker-grid']['engine']['daemon_extra_options']
+# for docker-engine package on RHEL: remove '-H fd://'
+# https://github.com/docker/docker/issues/22847
+if (node['platform_family'] == 'rhel' || node['platform_version'] == '14.04') \
+  && Gem::Version.create(docker_ver.tr('~', '-')) >= Gem::Version.create('1.12')
+  extra_options.gsub!(%r{-H\sfd://}, '')
+end
+
+docker_opts.push(extra_options) if !extra_options.nil? && !extra_options.empty?
+
+init_package = node['init_package']
+if init_package == 'systemd'
+  directory '/etc/systemd/system/docker.service.d' do
+    owner 'root'
+    group 'root'
+    mode '0755'
+    action :create
+  end
+
+  template '/etc/systemd/system/docker.service.d/override.conf' do
+    source  'etc/systemd/system/docker.service.d/override.conf'
+    owner 'root'
+    group 'root'
+    mode '0644'
+    variables(
+      docker_opts: docker_opts
+    )
+    not_if { node['docker-grid']['install_flavor'] == 'os-repository' && node['platform_family'] == 'rhel' }
+    notifies :run, 'bash[systemctl_daemon-reload]', :immediately
+    notifies :restart, 'service[docker]'
+  end
+elsif init_package == 'init'  # for Ubuntu 14.04,...
+  template '/etc/default/docker' do
+    source  'etc/default/docker'
+    owner 'root'
+    group 'root'
+    mode '0644'
+    variables(
+      docker_opts: docker_opts
+    )
+    notifies :restart, 'service[docker]'
+  end
+end
+
 service 'docker' do
+  provider Chef::Provider::Service::Upstart if node['platform'] == 'ubuntu' && node['platform_version'] < '15.04'
   action [:start, :enable]
   subscribes :restart, 'execute[update-ca-certificates]', :delayed
 end
diff --git a/cookbooks/docker-grid/templates/default/etc/default/docker b/cookbooks/docker-grid/templates/default/etc/default/docker
new file mode 100644 (file)
index 0000000..9c5c48b
--- /dev/null
@@ -0,0 +1,23 @@
+# Docker Upstart and SysVinit configuration file
+
+#
+# THIS FILE DOES NOT APPLY TO SYSTEMD
+#
+#   Please see the documentation for "systemd drop-ins":
+#   https://docs.docker.com/engine/admin/systemd/
+#
+
+# Customize location of Docker binary (especially for development testing).
+#DOCKERD="/usr/local/bin/dockerd"
+
+# Use DOCKER_OPTS to modify the daemon startup options.
+#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
+<% unless @docker_opts.empty? %>
+DOCKER_OPTS="<%= @docker_opts.join(' ') %>"
+<% end %>
+
+# If you need Docker to use an HTTP proxy, it can also be specified here.
+#export http_proxy="http://127.0.0.1:3128/"
+
+# This is also a handy place to tweak where Docker's temporary files go.
+#export DOCKER_TMPDIR="/mnt/bigdrive/docker-tmp"
index f41b577..75eb4aa 100644 (file)
@@ -1,28 +1,3 @@
-<%
-options = []
-
-storage_driver = node['docker-grid']['engine']['storage-driver']
-if !storage_driver.nil? && !storage_driver.empty?
-  options.push("--storage-driver=#{storage_driver}")
-end
-
-userns_remap = node['docker-grid']['engine']['userns-remap']
-if !userns_remap.nil? && !userns_remap.empty?
-  options.push("--userns-remap=#{userns_remap}")
-end
-
-extra_options = node['docker-grid']['engine']['daemon_extra_options']
-# for docker-engine package on RHEL: remove '-H fd://'
-# https://github.com/docker/docker/issues/22847
-if node['platform_family'] == 'rhel' \
-  && Gem::Version.create(node['docker-grid']['engine']['version']) >= Gem::Version.create('1.12')
-  extra_options.gsub!(%r{-H\sfd://}, '')
-end
-
-if !extra_options.nil? && !extra_options.empty?
-  options.push(extra_options)
-end
--%>
 [Service]
 ExecStart=
-ExecStart=/usr/bin/docker daemon <%= options.join(' ') %>
+ExecStart=/usr/bin/docker daemon <%= @docker_opts.join(' ') %>