From ce15776b321246e85a0b1c1368e0894a40259107 Mon Sep 17 00:00:00 2001 From: Timo Naroska Date: Sat, 27 Jan 2024 23:30:57 -0800 Subject: [PATCH] Fix#13342 adapt docker provider build for containerd storage --- plugins/providers/docker/driver.rb | 4 ++++ test/unit/plugins/providers/docker/driver_test.rb | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/plugins/providers/docker/driver.rb b/plugins/providers/docker/driver.rb index 9e5a0f424..a3642ec58 100644 --- a/plugins/providers/docker/driver.rb +++ b/plugins/providers/docker/driver.rb @@ -31,6 +31,10 @@ module VagrantPlugins # In this case, docker buildkit is enabled. Its format is different # from standard docker matches = result.scan(/writing image .+:([^\s]+)/i).last + if !matches + # Check for outout of docker using containerd backend store + matches = result.scan(/exporting manifest list .+:([^\s]+)/i).last + end if !matches if podman? # Check for podman format when it is emulating docker CLI. diff --git a/test/unit/plugins/providers/docker/driver_test.rb b/test/unit/plugins/providers/docker/driver_test.rb index 471074505..0892090e4 100644 --- a/test/unit/plugins/providers/docker/driver_test.rb +++ b/test/unit/plugins/providers/docker/driver_test.rb @@ -207,6 +207,16 @@ describe VagrantPlugins::DockerProvider::Driver do end end + context "using buildkit with containerd backend output" do + let(:stdout) { "exporting manifest list sha256:1a2b3c4d done" } + + it "builds a container with buildkit docker (containerd)" do + container_id = subject.build("/tmp/fakedir") + + expect(container_id).to eq(cid) + end + end + context "using podman emulating docker CLI" do let(:stdout) { "1a2b3c4d5e6f7g8h9i10j11k12l13m14n16o17p18q19r20s21t22u23v24w25x2" }