vagrant/plugins/providers/docker/action/destroy_build_image.rb

49 lines
1.2 KiB
Ruby

require "log4r"
module VagrantPlugins
module DockerProvider
module Action
class DestroyBuildImage
def initialize(app, env)
@app = app
@logger = Log4r::Logger.new("vagrant::docker::destroybuildimage")
end
def call(env)
machine = env[:machine]
image = env[:build_image]
image_file = nil
if !image
# Try to read the image ID from the cache file if we've
# already built it.
image_file = machine.data_dir.join("docker_build_image")
image = nil
if image_file.file?
image = image_file.read.chomp
end
end
if image
machine.ui.output(I18n.t("docker_provider.build_image_destroy"))
if !machine.provider.driver.rmi(image)
machine.ui.detail(I18n.t(
"docker_provider.build_image_destroy_in_use"))
end
end
if image_file && image_file.file?
begin
image_file.delete
rescue Errno::ENOENT
# Its okay
end
end
@app.call(env)
end
end
end
end
end