diff --git a/plugins/providers/docker/driver.rb b/plugins/providers/docker/driver.rb index f71ec1673..078a544bc 100644 --- a/plugins/providers/docker/driver.rb +++ b/plugins/providers/docker/driver.rb @@ -225,8 +225,9 @@ module VagrantPlugins execute('docker', 'rmi', id) return true rescue => e - return false if e.to_s.include?("is using it") - return false if e.to_s.include?("is being used") + return false if e.to_s.include?("is using it") or + e.to_s.include?("is being used") or + e.to_s.include?("is in use") raise if !e.to_s.include?("No such image") end diff --git a/test/unit/plugins/providers/docker/driver_test.rb b/test/unit/plugins/providers/docker/driver_test.rb index f68bf52ea..ed06a1610 100644 --- a/test/unit/plugins/providers/docker/driver_test.rb +++ b/test/unit/plugins/providers/docker/driver_test.rb @@ -579,6 +579,15 @@ describe VagrantPlugins::DockerProvider::Driver do subject.rmi(id) end end + + context 'image is in use by a container' do + before { allow(subject).to receive(:execute).and_raise("image is in use by a container") } + + it 'does not remove the image' do + expect(subject.rmi(id)).to eq(false) + subject.rmi(id) + end + end end describe '#inspect_container' do