Use image for bucket name with docker, if box is unset
This allows multiple machines using the image to share the cache and avoids the following error: /Applications/Vagrant/embedded/lib/ruby/2.0.0/pathname.rb:389:in `initialize': no implicit conversion of nil into String (TypeError)
This commit is contained in:
parent
d94f08a048
commit
c7c47782cb
1 changed files with 12 additions and 1 deletions
|
@ -33,7 +33,14 @@ module VagrantPlugins
|
||||||
def cache_root
|
def cache_root
|
||||||
@cache_root ||= case @env[:machine].config.cache.scope.to_sym
|
@cache_root ||= case @env[:machine].config.cache.scope.to_sym
|
||||||
when :box
|
when :box
|
||||||
@env[:home_path].join('cache', box_name)
|
@box_name = box_name
|
||||||
|
# Box is optional with docker provider, so use image name if unset
|
||||||
|
if @box_name.nil? && @env[:machine].provider_name.to_sym == :docker
|
||||||
|
bucket_name = image_name.gsub(':', '-')
|
||||||
|
else
|
||||||
|
bucket_name = @box_name
|
||||||
|
end
|
||||||
|
@env[:home_path].join('cache', bucket_name)
|
||||||
when :machine
|
when :machine
|
||||||
@env[:machine].data_dir.parent.join('cache')
|
@env[:machine].data_dir.parent.join('cache')
|
||||||
else
|
else
|
||||||
|
@ -44,6 +51,10 @@ module VagrantPlugins
|
||||||
def box_name
|
def box_name
|
||||||
@env[:machine].config.vm.box
|
@env[:machine].config.vm.box
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def image_name
|
||||||
|
@env[:machine].provider_config.image
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue