fix(host): ensure a single file dir when mounting (#23896)

This commit is contained in:
Zexi Li
2025-12-04 13:54:08 +08:00
committed by GitHub
parent 80287d6b4d
commit 4ca1fbfda5
@@ -134,9 +134,18 @@ func (p postOverlayHostPath) mountSingleFile(singleFilePath string, d diskPostOv
return errors.Wrapf(err, "change file %s owner", singleFilePath)
}
if !fileutils.Exists(mergedDst) {
if err := volume_mount.EnsureDir(filepath.Dir(mergedDst)); err != nil {
return errors.Wrapf(err, "ensure dir %s", filepath.Dir(mergedDst))
}
if err := volume_mount.ChangeDirOwnerDirectly(filepath.Dir(mergedDst), ov.FsUser, ov.FsGroup); err != nil {
return errors.Wrapf(err, "change dir %s owner", filepath.Dir(mergedDst))
}
if err := volume_mount.TouchFile(mergedDst); err != nil {
return errors.Wrapf(err, "touch file %s", mergedDst)
}
if err := volume_mount.ChangeDirOwnerDirectly(mergedDst, ov.FsUser, ov.FsGroup); err != nil {
return errors.Wrapf(err, "change file %s owner", mergedDst)
}
}
if err := mountutils.MountBind(singleFileMergedFilePath, mergedDst); err != nil {
return errors.Wrapf(err, "bind mount %s to %s", singleFileMergedFilePath, mergedDst)