diff --git a/pkg/machine/e2e/basic_test.go b/pkg/machine/e2e/basic_test.go index 408096ed91..695327a56d 100644 --- a/pkg/machine/e2e/basic_test.go +++ b/pkg/machine/e2e/basic_test.go @@ -90,6 +90,13 @@ var _ = Describe("run basic podman commands", func() { Expect(err).ToNot(HaveOccurred()) Expect(runAlp).To(Exit(0)) + // Test overlay works on all platforms except Hyper-V (see #26210) + if !isVmtype(define.HyperVVirt) { + runAlp, err = mb.setCmd(bm.withPodmanCommand([]string{"run", "-v", tDir + ":/test:O", TESTIMAGE, "ls", "/test/attr-test-file"})).run() + Expect(err).ToNot(HaveOccurred()) + Expect(runAlp).To(Exit(0)) + } + // Test build with --volume option cf := filepath.Join(tDir, "Containerfile") err = os.WriteFile(cf, []byte("FROM "+TESTIMAGE+"\nRUN ls /test/attr-test-file\n"), 0o644) diff --git a/pkg/specgenutil/volumes.go b/pkg/specgenutil/volumes.go index d8d190578c..7fa497c75b 100644 --- a/pkg/specgenutil/volumes.go +++ b/pkg/specgenutil/volumes.go @@ -157,6 +157,11 @@ func parseVolumes(rtc *config.Config, volumeFlag, mountFlag, tmpfsFlag []string) } finalOverlayVolume := make([]*specgen.OverlayVolume, 0, len(overlayVolumes)) for _, volume := range overlayVolumes { + absSrc, err := specgen.ConvertWinMountPath(volume.Source) + if err != nil { + return nil, fmt.Errorf("getting absolute path of %s: %w", volume.Source, err) + } + volume.Source = absSrc finalOverlayVolume = append(finalOverlayVolume, volume) } finalImageVolumes := make([]*specgen.ImageVolume, 0, len(unifiedContainerMounts.imageVolumes))