diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d55b258df..d0ff27e2b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ This release includes Docker 0.9.0 changes and defaults, such as setting exec_dr * Enhancement: [#81][]: Docker 0.9.0: Add a -G option to specify the group which unix sockets belong * Enhancement: [#82][]: Docker 0.9.0: Add -f flag to docker rm to force removal of running containers * Enhancement: Add -f flag for docker rmi to force removal of images +* Enhancement: [#83][]: Docker 0.9.0: Add DOCKER_RAMDISK environment variable to make Docker work when the root is on a ramdisk * Enhancement: [#84][]: Docker 0.9.0: Add -e flag for execution driver * Enhancement: [#86][]: Add Chefspec LWRP matchers @@ -361,6 +362,7 @@ Lots of community contributions this release -- thanks! [#78]: https://github.com/bflad/chef-docker/issues/78 [#81]: https://github.com/bflad/chef-docker/issues/81 [#82]: https://github.com/bflad/chef-docker/issues/82 +[#83]: https://github.com/bflad/chef-docker/issues/83 [#84]: https://github.com/bflad/chef-docker/issues/84 [#86]: https://github.com/bflad/chef-docker/issues/86 [@jcrobak]: https://github.com/jcrobak diff --git a/README.md b/README.md index 12552851a8..6dfac8e99f 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ init_type | Init type for docker ("runit", "systemd", "sysv", or "upstart") | St install_dir | Installation directory for docker binary | String | auto-detected (see attributes/default.rb) install_type | Installation type for docker ("binary", "package" or "source") | String | "package" options | Additional options to pass to docker. These could be flags like "-api-enable-cors". | String | nil +ramdisk | Set DOCKER_RAMDISK when using RAM disk | TrueClass or FalseClass | false registry_cmd_timeout | registry LWRP default cmd_timeout seconds | Fixnum | 60 storage_driver | Storage driver for docker (nil, "aufs", or "devicemapper") | String | auto-detected (see attributes/default.rb) version | Version of docker | String | nil diff --git a/attributes/default.rb b/attributes/default.rb index 75a0c1d50c..9b7eacea05 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -21,6 +21,7 @@ default['docker']['group_members'] = [] default['docker']['http_proxy'] = nil default['docker']['image_cmd_timeout'] = 300 +default['docker']['ramdisk'] = false default['docker']['registry_cmd_timeout'] = 60 default['docker']['init_type'] = value_for_platform( diff --git a/templates/default/docker.service.erb b/templates/default/docker.service.erb index 2e416b4031..4e370b8389 100644 --- a/templates/default/docker.service.erb +++ b/templates/default/docker.service.erb @@ -5,6 +5,9 @@ After=network.target [Service] Type=simple +<% if node['docker']['ramdisk'] -%> +Environment="DOCKER_RAMDISK=<%= node['docker']['ramdisk'] %>" +<% end -%> <% if node['docker']['http_proxy'] -%> Environment="HTTP_PROXY=<%= node['docker']['http_proxy'] %>" <% end -%> diff --git a/templates/default/docker.sysconfig.erb b/templates/default/docker.sysconfig.erb index 0c6e513a3e..0d956abef9 100644 --- a/templates/default/docker.sysconfig.erb +++ b/templates/default/docker.sysconfig.erb @@ -26,6 +26,10 @@ DOCKER_OPTS="$DOCKER_OPTS -e <%= node['docker']['exec_driver'] %>" DOCKER_OPTS="$DOCKER_OPTS -G <%= node['docker']['group'] %>" <% end -%> +<% if node['docker']['ramdisk'] -%> +DOCKER_RAMDISK=<%= node['docker']['ramdisk'] %> +<% end -%> + # If you need Docker to use an HTTP proxy, it can also be specified here. <% if node['docker']['http_proxy'] -%> export HTTP_PROXY=<%= node['docker']['http_proxy'] %> diff --git a/templates/default/sv-docker-run.erb b/templates/default/sv-docker-run.erb index 56f88878eb..31c8bdfe86 100644 --- a/templates/default/sv-docker-run.erb +++ b/templates/default/sv-docker-run.erb @@ -1,5 +1,8 @@ #!/bin/sh exec 2>&1 +<% if node['docker']['ramdisk'] -%> +export DOCKER_RAMDISK=<%= node['docker']['ramdisk'] %> +<% end -%> <% if node['docker']['http_proxy'] -%> export HTTP_PROXY=<%= node['docker']['http_proxy'] %> <% end -%>