diff options
author | flouthoc <flouthoc.git@gmail.com> | 2021-08-25 16:13:17 +0530 |
---|---|---|
committer | Aditya Rajan <arajan@redhat.com> | 2021-09-14 13:31:39 +0530 |
commit | a55e2a00fcb82485333eeec55aa2eaee338782d7 (patch) | |
tree | d465835a368c7f78239d7abd1c2912347bf23d4c /pkg | |
parent | b603c7a4b91d30b33ce987740156f46804f24074 (diff) | |
download | podman-a55e2a00fcb82485333eeec55aa2eaee338782d7.tar.gz podman-a55e2a00fcb82485333eeec55aa2eaee338782d7.tar.bz2 podman-a55e2a00fcb82485333eeec55aa2eaee338782d7.zip |
rootfs: Add support for rootfs-overlay and bump to buildah v1.22.1-0.202108
Allows users to specify a readonly rootfs with :O, in exchange podman will create a writable overlay.
bump builah to v1.22.1-0.20210823173221-da2b428c56ce
[NO TESTS NEEDED]
Signed-off-by: flouthoc <flouthoc.git@gmail.com>
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/specgen/generate/container_create.go | 4 | ||||
-rw-r--r-- | pkg/specgen/specgen.go | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/pkg/specgen/generate/container_create.go b/pkg/specgen/generate/container_create.go index f82b2a3c6..fbb229e1c 100644 --- a/pkg/specgen/generate/container_create.go +++ b/pkg/specgen/generate/container_create.go @@ -90,7 +90,7 @@ func MakeContainer(ctx context.Context, rt *libpod.Runtime, s *specgen.SpecGener var newImage *libimage.Image var imageData *libimage.ImageData if s.Rootfs != "" { - options = append(options, libpod.WithRootFS(s.Rootfs)) + options = append(options, libpod.WithRootFS(s.Rootfs, s.RootfsOverlay)) } else { var resolvedImageName string newImage, resolvedImageName, err = rt.LibimageRuntime().LookupImage(s.Image, nil) @@ -394,7 +394,7 @@ func createContainerOptions(ctx context.Context, rt *libpod.Runtime, s *specgen. options = append(options, libpod.WithShmSize(*s.ShmSize)) } if s.Rootfs != "" { - options = append(options, libpod.WithRootFS(s.Rootfs)) + options = append(options, libpod.WithRootFS(s.Rootfs, s.RootfsOverlay)) } // Default used if not overridden on command line diff --git a/pkg/specgen/specgen.go b/pkg/specgen/specgen.go index 0c30c498a..e0609c5bc 100644 --- a/pkg/specgen/specgen.go +++ b/pkg/specgen/specgen.go @@ -2,6 +2,7 @@ package specgen import ( "net" + "strings" "syscall" "github.com/containers/image/v5/manifest" @@ -209,6 +210,8 @@ type ContainerStorageConfig struct { // Conflicts with Image. // At least one of Image or Rootfs must be specified. Rootfs string `json:"rootfs,omitempty"` + // RootfsOverlay tells if rootfs is actuall an overlay on top of base path + RootfsOverlay bool `json:"rootfs_overlay,omitempty"` // ImageVolumeMode indicates how image volumes will be created. // Supported modes are "ignore" (do not create), "tmpfs" (create as // tmpfs), and "anonymous" (create as anonymous volumes). @@ -528,6 +531,12 @@ func NewSpecGenerator(arg string, rootfs bool) *SpecGenerator { csc := ContainerStorageConfig{} if rootfs { csc.Rootfs = arg + // check if rootfs is actually overlayed + parts := strings.SplitN(csc.Rootfs, ":", 2) + if len(parts) > 1 && parts[1] == "O" { + csc.RootfsOverlay = true + csc.Rootfs = parts[0] + } } else { csc.Image = arg } |