dind: remove obsolete runtime dependencies - #584
Conversation
The btrfs storage driver no longer requires the btrfs userspace utilities at runtime. Moby switched its btrfs implementation to use the kernel UAPI directly in v23.0, removing its dependency on libbtrfs/btrfs-progs. Containerd similarly switched its btrfs snapshotter to use the kernel UAPI through containerd/btrfs/v2 in containerd 1.7, making kernel headers a build-time dependency instead of requiring btrfs-progs at runtime. Remove btrfs-progs from the dind image, as neither the Moby btrfs storage driver nor containerd's btrfs snapshotter requires it. - moby/moby@3208dca - containerd/containerd@52f82ac Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The e2fsprogs, e2fsprogs-extra, and xfsprogs packages were runtime dependencies of the devicemapper storage driver, providing the tools used to create and configure ext4 and XFS filesystems. The devicemapper storage driver was disabled by default in Docker Engine v23.0 and removed in v25.0. None of these filesystem utilities are required by the remaining storage drivers. Remove e2fsprogs, e2fsprogs-extra, and xfsprogs from the dind image. - https://docs.docker.com/engine/deprecated/#device-mapper-storage-driver Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Git was originally added explicitly to the dind variants when the separate git variant was folded into dind. It was later added to the CLI variants as well, to support build and buildx workflows that invoke git. As the dind image is based on the CLI image, git is now inherited from its parent and no longer needs to be installed again. Remove the redundant git package from the dind dependencies. - docker-library@485fefe - docker-library@b348a31 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
|
| btrfs-progs \ | ||
| e2fsprogs \ | ||
| e2fsprogs-extra \ | ||
| git \ |
There was a problem hiding this comment.
Doesn't Buildkit also depend on git for the git sources?
There was a problem hiding this comment.
It does, but the DIND image is based on the CLI image, which has it already installed
There was a problem hiding this comment.
Oh, I should have read the commit body!
|
Also opened this one as draft (probably needs some looking what we want to keep); |
| shadow-uidmap \ | ||
| xfsprogs \ | ||
| xz \ | ||
| zfs \ |
There was a problem hiding this comment.
Is ZFS really still actually supported?
There was a problem hiding this comment.
Ah, I see you mention that over in #585, but IMO it has a similar shape/flavor to this PR to remove ZFS here.
There was a problem hiding this comment.
Yeah, I was considering removing it; for this PR I limited to dependencies that were not needed, so no behavior change. But honestly not sure if anyone would be using ZFS with this image.
There was a problem hiding this comment.
Let me know if you prefer removing it already, or in a follow up.
There was a problem hiding this comment.
Yeah, I guess a follow-up would be good so we can let it simmer for a minute and see if anyone sees it and complains (although that will usually only happen after it's merged and released, but at least then there'll be a dedicated place to discuss / explain).
|
#504 (comment) lol, "later" has come 😄
|
Changes: - docker-library/docker@925e9ee: Merge pull request docker-library/docker#584 from thaJeztah/remove_dependencies
Changes: - docker-library/docker@925e9ee: Merge pull request docker-library/docker#584 from thaJeztah/remove_dependencies Co-authored-by: Docker Library Bot <github+dockerlibrarybot@infosiftr.com>
Ha! Missed that comment; I looked at the git history and found both commits (and did consider it was likely a no-op). 😅 I'll have a look at the follow up(s) |
dind: remove obsolete runtime dependencies
dind: remove btrfs-progs dependency
The btrfs storage driver no longer requires the btrfs userspace
utilities at runtime.
Moby switched its btrfs implementation to use the kernel UAPI directly
in v23.0, removing its dependency on libbtrfs/btrfs-progs.
Containerd similarly switched its btrfs snapshotter to use the kernel
UAPI through containerd/btrfs/v2 in containerd 1.7, making kernel
headers a build-time dependency instead of requiring btrfs-progs at
runtime.
Remove btrfs-progs from the dind image, as neither the Moby btrfs
storage driver nor containerd's btrfs snapshotter requires it.
dind: remove e2fsprogs and xfsprogs dependencies
The e2fsprogs, e2fsprogs-extra, and xfsprogs packages were runtime
dependencies of the devicemapper storage driver, providing the tools
used to create and configure ext4 and XFS filesystems.
The devicemapper storage driver was disabled by default in Docker
Engine v23.0 and removed in v25.0. None of these filesystem utilities
are required by the remaining storage drivers.
Remove e2fsprogs, e2fsprogs-extra, and xfsprogs from the dind image.
dind: remove duplicate git dependency
Git was originally added explicitly to the dind variants when the
separate git variant was folded into dind.
It was later added to the CLI variants as well, to support build and
buildx workflows that invoke git. As the dind image is based on the CLI
image, git is now inherited from its parent and no longer needs to be
installed again.
Remove the redundant git package from the dind dependencies.
dind: update links for runtime-dependencies