diff options
author | Matthew Heon <matthew.heon@pm.me> | 2019-02-26 12:16:58 -0500 |
---|---|---|
committer | Matthew Heon <matthew.heon@pm.me> | 2019-02-26 12:16:58 -0500 |
commit | 83db80ce172975ddb7c5bfc0d1cea03d5c6b6c94 (patch) | |
tree | 24dc828a104d2c4f4fc10400f4b45be4e7fbf111 /libpod/options.go | |
parent | 0e252f043707fe4ca556751ee9b23243ce22e3f3 (diff) | |
download | podman-83db80ce172975ddb7c5bfc0d1cea03d5c6b6c94.tar.gz podman-83db80ce172975ddb7c5bfc0d1cea03d5c6b6c94.tar.bz2 podman-83db80ce172975ddb7c5bfc0d1cea03d5c6b6c94.zip |
Only remove image volumes when removing containers
When removing volumes with rm --volumes we want to only remove
volumes that were created with the container. Volumes created
separately via 'podman volume create' should not be removed.
Also ensure that --rm implies volumes will be removed.
Fixes #2441
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
Diffstat (limited to 'libpod/options.go')
-rw-r--r-- | libpod/options.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libpod/options.go b/libpod/options.go index 184d5d59f..1e8592a25 100644 --- a/libpod/options.go +++ b/libpod/options.go @@ -1248,6 +1248,22 @@ func WithVolumeOptions(options map[string]string) VolumeCreateOption { } } +// withSetCtrSpecific sets a bool notifying libpod that a volume was created +// specifically for a container. +// These volumes will be removed when the container is removed and volumes are +// also specified for removal. +func withSetCtrSpecific() VolumeCreateOption { + return func(volume *Volume) error { + if volume.valid { + return ErrVolumeFinalized + } + + volume.config.IsCtrSpecific = true + + return nil + } +} + // Pod Creation Options // WithPodName sets the name of the pod. |