forked from moby/buildkit
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
executor: fix overlay layer limit for non-rootfs mounts
Historic layer limit for Docker images is 127. Because in overlayfs mounting 127 layers usually reaches the page size limit of mount options in Linux kernel, there is special code to work around the limitation. This custom code was used for rootfs of container because runc takes rootfs as a directory path, meaning buildkit needs to mount it and then pass the path. For non-rootfs mounts runc takes them as direct mount configuration and performs the mount itself. As runc does not have this special way to mount long overlayfs mounts it will perform the mount with clipped options what will fail in some way in kernel depending on the precise cutoff point. Workaround is to detect when the mount passed to runc is too long for runc to mount it itself and it that case let BuildKit mount it and in runc perform bind of the BuildKit mount. Signed-off-by: Tonis Tiigi <[email protected]>
- Loading branch information
1 parent
ca7e856
commit 2c9d934
Showing
2 changed files
with
88 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters