spiegel_podman/docs/source/markdown
Matthew Heon 6ad6132987 Only stop chowning volumes once they're not empty
When an empty volume is mounted into a container, Docker will
chown that volume appropriately for use in the container. Podman
does this as well, but there are differences in the details. In
Podman, a chown is presently a one-and-done deal; in Docker, it
will continue so long as the volume remains empty. Mount into a
dozen containers, but never add content, the chown occurs every
time. The chown is also linked to copy-up; it will always occur
when a copy-up occurred, despite the volume now not being empty.
This PR changes our logic to (mostly) match Docker's.

For some reason, the chowning also stops if the volume is chowned
to root at any point. This feels like a Docker bug, but as they
say, bug for bug compatible.

In retrospect, using bools for NeedsChown and NeedsCopyUp was a
mistake. Docker isn't actually tracking this stuff; they're just
doing a copy-up and permissions change unconditionally as long as
the volume is empty. They also have the two linked as one
operation, seemingly, despite happening at very different times
during container init. Replicating that in our stateful system is
nontrivial, hence the need for the new CopiedUp field. Basically,
we never want to chown a volume with contents in it, except if
that data is a result of a copy-up that resulted from mounting
into the current container. Tracking who did the copy-up is the
easiest way to do this.

Fixes #22571

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2024-05-23 12:35:08 +00:00
..
links Install podman-systemd.unit man page, make quadlet discoverable 2023-02-03 08:42:20 -06:00
options Update podman network docs 2024-05-21 13:57:54 +00:00
.gitignore Remove unnencessary pregenerated doc 2023-11-23 20:07:48 +02:00
podman-attach.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-auto-update.1.md.in [CI:DOCS] update auto-update docs 2023-08-22 16:19:06 +02:00
podman-build.1.md.in Fix up example description of podman-build.1.md.in 2024-02-19 08:58:17 -05:00
podman-commit.1.md Fix up example description of podman-commit.1.md 2024-02-19 08:53:38 -05:00
podman-completion.1.md Remove unnecessary backslashes 2023-08-02 15:01:16 +01:00
podman-compose.1.md.in add a podman-compose command 2023-07-24 19:23:04 +02:00
podman-container-checkpoint.1.md man pages and command help: clean up descriptions 2023-05-28 18:57:43 +02:00
podman-container-cleanup.1.md Remove future tense from man pages 2023-05-16 15:10:33 -04:00
podman-container-clone.1.md.in Fix up example description of podman-container commands 2024-02-19 15:18:51 -05:00
podman-container-diff.1.md.in Remove future tense from man pages 2023-05-16 15:10:33 -04:00
podman-container-exists.1.md Remove future tense from man pages 2023-05-16 15:10:33 -04:00
podman-container-inspect.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-container-prune.1.md Fix up example description of podman-container commands 2024-02-19 15:18:51 -05:00
podman-container-restore.1.md Remove unnecessary use of the word "please". 2023-07-23 17:31:29 +02:00
podman-container-runlabel.1.md.in Remove unnecessary use of the word "please". 2023-07-23 17:31:29 +02:00
podman-container.1.md man pages and command help: clean up descriptions 2023-05-28 18:57:43 +02:00
podman-cp.1.md Update docs/source/markdown/podman-cp.1.md 2024-02-19 15:19:40 -05:00
podman-create.1.md.in add --retry --retry-delay to podman run/create 2024-02-29 10:20:21 -05:00
podman-diff.1.md.in Apply suggestions from code review 2024-02-19 15:53:03 -05:00
podman-events.1.md Make podman update changes persistent 2024-04-17 08:23:50 -04:00
podman-exec.1.md.in Fix up example description of podman-exec.1.md.in 2024-02-17 13:54:14 -05:00
podman-export.1.md Fix up example description of podman-export/export commands 2024-02-18 12:26:33 -05:00
podman-farm-build.1.md.in Fix up example description of podman-farm commands 2024-02-18 08:02:29 -05:00
podman-farm-create.1.md Fix up example description of podman-farm commands 2024-02-18 08:02:29 -05:00
podman-farm-list.1.md Fix up example description of podman-farm commands 2024-02-18 08:02:29 -05:00
podman-farm-remove.1.md Fix up example description of podman-farm commands 2024-02-18 08:02:29 -05:00
podman-farm-update.1.md Fix up example description of podman-farm commands 2024-02-18 08:02:29 -05:00
podman-farm.1.md document new connection/farm storage location 2024-02-08 18:05:32 +01:00
podman-generate-spec.1.md Remove future tense from man pages 2023-05-16 15:10:33 -04:00
podman-generate-systemd.1.md docs: generate-systemd: add clarification statement 2024-03-11 09:03:36 +01:00
podman-generate.1.md Deprecate podman generate systemd 2023-08-03 06:58:53 -04:00
podman-healthcheck-run.1.md Fix up example description of podman-healthcheck-run.1.md 2024-02-17 13:54:15 -05:00
podman-healthcheck.1.md Fix manpage headers 2022-09-06 09:37:13 -07:00
podman-history.1.md Apply suggestions from code review 2024-02-20 05:38:19 -05:00
podman-image-diff.1.md Fix up example description of podman-image commands 2024-02-18 07:41:47 -05:00
podman-image-exists.1.md Fix up example description of podman-image commands 2024-02-18 07:41:47 -05:00
podman-image-inspect.1.md Fix up example description of podman-image commands 2024-02-18 07:41:47 -05:00
podman-image-mount.1.md Fix up example description of podman-image commands 2024-02-18 07:41:47 -05:00
podman-image-prune.1.md Fix up example description of podman-image commands 2024-02-18 07:41:47 -05:00
podman-image-scp.1.md Fix up example description of podman-image commands 2024-02-18 07:41:47 -05:00
podman-image-sign.1.md.in Correct markdown in docs 2023-05-18 16:44:24 -07:00
podman-image-tree.1.md Fix up example description of podman-image commands 2024-02-18 07:41:47 -05:00
podman-image-trust.1.md.in Fix up example description of podman-image commands 2024-02-18 07:41:47 -05:00
podman-image-unmount.1.md Fix up example description of podman-image commands 2024-02-18 07:41:47 -05:00
podman-image.1.md man pages and command help: clean up descriptions 2023-05-28 18:57:43 +02:00
podman-images.1.md.in Apply suggestions from code review 2024-02-20 05:39:27 -05:00
podman-import.1.md Fix up example description of podman-export/export commands 2024-02-18 12:26:33 -05:00
podman-info.1.md Fix up example description of podman-info.1.md 2024-02-17 13:54:19 -05:00
podman-init.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-inspect.1.md.in Fix up example description of podman-inspect.1.md.in 2024-02-20 05:45:41 -05:00
podman-kill.1.md.in Fix up example description of podman-kill.1.md.in 2024-02-19 10:06:05 -05:00
podman-kube-apply.1.md Try to fix the broken formatting of man podman‐kube‐apply(1). 2023-11-06 14:53:35 +01:00
podman-kube-down.1.md Remove future tense from man pages 2023-05-16 15:10:33 -04:00
podman-kube-generate.1.md Comply to Kubernetes specifications for annotation size. 2024-02-20 14:58:35 -08:00
podman-kube-play.1.md.in Add the ability to automount images as volumes via play 2024-04-25 14:12:27 -04:00
podman-kube.1.md [CI:DOCS] Update kube docs 2024-04-04 09:28:21 -04:00
podman-load.1.md [CI:DOCS] minor man page cleanup 2024-01-25 15:59:18 -07:00
podman-login.1.md.in docs/podman-login: Give an example of writing the persistent path 2024-03-28 13:04:47 -04:00
podman-logout.1.md.in Fix up example description of podman-logout.1.md.in 2024-02-18 19:10:40 -05:00
podman-logs.1.md.in Fix language, typos and markdown layout 2023-07-24 11:18:25 +02:00
podman-machine-info.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-machine-init.1.md.in Use machine image as specified in containers.conf 2024-02-29 13:38:43 -05:00
podman-machine-inspect.1.md Add Rosetta support for Apple Silicon mac 2024-05-20 14:16:38 +00:00
podman-machine-list.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-machine-os-apply.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-machine-os.1.md Introduce podman machine os apply 2023-02-15 14:48:12 -05:00
podman-machine-reset.1.md Introduce Podman machine reset 2024-02-18 08:43:12 -06:00
podman-machine-rm.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-machine-set.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-machine-ssh.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-machine-start.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-machine-stop.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-machine.1.md Introduce Podman machine reset 2024-02-18 08:43:12 -06:00
podman-manifest-add.1.md.in Add man page content for artifacts 2024-02-29 11:47:44 -05:00
podman-manifest-annotate.1.md.in Add man page content for artifacts 2024-02-29 11:47:44 -05:00
podman-manifest-create.1.md.in Add man page content for artifacts 2024-02-29 11:47:44 -05:00
podman-manifest-exists.1.md Fix up example description of podman-manifest commands 2024-02-17 13:54:04 -05:00
podman-manifest-inspect.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-manifest-push.1.md.in Fix up example description of podman-manifest commands 2024-02-17 13:54:04 -05:00
podman-manifest-remove.1.md Fix up example description of podman-manifest commands 2024-02-17 13:54:04 -05:00
podman-manifest-rm.1.md docs: fix podman-manifest-rm header 2024-01-27 19:03:35 -05:00
podman-manifest.1.md Add man page content for artifacts 2024-02-29 11:47:44 -05:00
podman-mount.1.md.in Fix up example description of podman-mount.1.md.in 2024-02-19 15:22:23 -05:00
podman-network-connect.1.md Fix up example description of podman-network commands 2024-02-18 07:48:08 -05:00
podman-network-create.1.md drop support for "pasta" as a network name 2024-02-05 13:57:24 +01:00
podman-network-disconnect.1.md Fix up example description of podman-network commands 2024-02-18 07:48:08 -05:00
podman-network-exists.1.md Fix up example description of podman-network commands 2024-02-18 07:48:08 -05:00
podman-network-inspect.1.md podman network inspect: include running containers 2024-02-28 16:33:26 +01:00
podman-network-ls.1.md.in Fix up example description of podman-network commands 2024-02-18 07:48:08 -05:00
podman-network-prune.1.md Fix up example description of podman-network commands 2024-02-18 07:48:08 -05:00
podman-network-reload.1.md.in Fix up example description of podman-network commands 2024-02-18 07:48:08 -05:00
podman-network-rm.1.md Fix up example description of podman-network commands 2024-02-18 07:48:08 -05:00
podman-network-update.1.md Fix up example description of podman-network commands 2024-02-18 07:48:08 -05:00
podman-network.1.md Update podman network docs 2024-05-21 13:57:54 +00:00
podman-pause.1.md.in Apply suggestions from code review 2024-02-18 12:42:07 -05:00
podman-pod-clone.1.md.in Merge pull request #21180 from rhatdan/nvidia 2024-01-30 14:59:02 +00:00
podman-pod-create.1.md.in Merge pull request #21180 from rhatdan/nvidia 2024-01-30 14:59:02 +00:00
podman-pod-exists.1.md Fix up example description of podman-pod commands 2024-02-19 10:03:30 -05:00
podman-pod-inspect.1.md.in Fix up example description of podman-pod commands 2024-02-19 10:03:30 -05:00
podman-pod-kill.1.md.in Fix up example description of podman-pod commands 2024-02-19 10:03:30 -05:00
podman-pod-logs.1.md.in Fix up example description of podman-pod commands 2024-02-19 10:03:30 -05:00
podman-pod-pause.1.md Fix up example description of podman-pod commands 2024-02-19 10:03:30 -05:00
podman-pod-prune.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-pod-ps.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-pod-restart.1.md fix podman-pod-restart.1.md typo 2024-04-18 19:53:33 -04:00
podman-pod-rm.1.md.in Fix up example description of podman-pod commands 2024-02-19 10:03:30 -05:00
podman-pod-start.1.md.in Fix up example description of podman-pod commands 2024-02-19 10:03:30 -05:00
podman-pod-stats.1.md.in Fix up example description of podman-pod commands 2024-02-19 10:03:30 -05:00
podman-pod-stop.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-pod-top.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-pod-unpause.1.md Fix up example description of podman-pod commands 2024-02-19 10:03:30 -05:00
podman-pod.1.md man pages and command help: clean up descriptions 2023-05-28 18:57:43 +02:00
podman-port.1.md.in Apply suggestions from code review 2024-02-20 05:46:41 -05:00
podman-ps.1.md podman ps: show exposed ports under PORTS as well 2024-04-10 14:24:23 +02:00
podman-pull.1.md.in [CI:DOCS] format podman-pull example as code 2024-04-21 19:46:39 -07:00
podman-push.1.md.in Add support for podman push --retry --retry-delay 2024-02-29 10:20:21 -05:00
podman-remote.1.md Fix specification of unix:///run 2023-09-17 07:37:14 -04:00
podman-rename.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-restart.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-rm.1.md.in Fix up example description of podman-rm.1.md.in 2024-02-17 13:54:24 -05:00
podman-rmi.1.md man pages and command help: clean up descriptions 2023-05-28 18:57:43 +02:00
podman-run.1.md.in add --retry --retry-delay to podman run/create 2024-02-29 10:20:21 -05:00
podman-save.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-search.1.md.in Corrected markdown documentation for --stars 2024-02-05 11:37:01 -06:00
podman-secret-create.1.md Adds example for secret creation from environment variable 2024-02-24 19:00:54 +11:00
podman-secret-exists.1.md Remove future tense from man pages 2023-05-16 15:10:33 -04:00
podman-secret-inspect.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-secret-ls.1.md.in chore: remove repetitive words 2024-03-22 15:11:29 +08:00
podman-secret-rm.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-secret.1.md Add support for secret exists 2023-04-03 15:33:50 +03:00
podman-start.1.md.in Fix up example description of podman-start.1.md.in 2024-02-17 13:54:25 -05:00
podman-stats.1.md.in Apply suggestions from code review 2024-02-20 05:49:04 -05:00
podman-stop.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-system-connection-add.1.md Fix up example description of podman-system commands 2024-02-20 08:18:51 -05:00
podman-system-connection-default.1.md Fix up example description of podman-system commands 2024-02-20 08:18:51 -05:00
podman-system-connection-list.1.md Fix up example description of podman-system commands 2024-02-20 08:18:51 -05:00
podman-system-connection-remove.1.md Fix up example description of podman-system commands 2024-02-20 08:18:51 -05:00
podman-system-connection-rename.1.md Fix up example description of podman-system commands 2024-02-20 08:18:51 -05:00
podman-system-connection.1.md Fix up example description of podman-system commands 2024-02-20 08:18:51 -05:00
podman-system-df.1.md Fix up example description of podman-system commands 2024-02-20 08:18:51 -05:00
podman-system-migrate.1.md Remove future tense from man pages 2023-05-16 15:10:33 -04:00
podman-system-prune.1.md [CI:DOCS] consistentize filter options in man pages 2023-09-18 07:41:28 -06:00
podman-system-renumber.1.md Remove future tense from man pages 2023-05-16 15:10:33 -04:00
podman-system-reset.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-system-service.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-system.1.md man pages and command help: clean up descriptions 2023-05-28 18:57:43 +02:00
podman-systemd.unit.5.md Quadlet/Container: Add GroupAdd option 2024-05-08 16:00:28 +03:00
podman-tag.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-top.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-unmount.1.md.in Fix up example description of podman-mount.1.md.in 2024-02-19 15:22:23 -05:00
podman-unpause.1.md.in Apply suggestions from code review 2024-02-18 12:42:07 -05:00
podman-unshare.1.md Fix up example description of podman-unshare.1.md 2024-02-17 13:54:29 -05:00
podman-untag.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-update.1.md.in Add support for updating restart policy 2024-04-17 08:23:51 -04:00
podman-version.1.md [CI:DOCS] man pages: document some --format options 2022-09-15 09:59:32 -06:00
podman-volume-create.1.md s3fs docs 2024-04-03 10:18:49 +00:00
podman-volume-exists.1.md Remove future tense from man pages 2023-05-16 15:10:33 -04:00
podman-volume-export.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-volume-import.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-volume-inspect.1.md Only stop chowning volumes once they're not empty 2024-05-23 12:35:08 +00:00
podman-volume-ls.1.md.in Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-volume-mount.1.md Fix up example description of podman-volume commands 2024-02-19 10:09:06 -05:00
podman-volume-prune.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-volume-reload.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-volume-rm.1.md Add information about --latest support on man pages 2024-01-23 07:28:40 -05:00
podman-volume-unmount.1.md Fix up example description of podman-volume commands 2024-02-19 10:09:06 -05:00
podman-volume.1.md man pages and command help: clean up descriptions 2023-05-28 18:57:43 +02:00
podman-wait.1.md.in [CI:DOCS] minor man page cleanup 2024-01-25 15:59:18 -07:00
podman.1.md Make podman update changes persistent 2024-04-17 08:23:50 -04:00
podmansh.1.md [skip-ci] Improve podmansh(1) 2023-09-30 17:33:17 +05:30