Add ReadOnly() function
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
This commit is contained in:
parent
4012c1b853
commit
7f82dd91f4
@ -335,15 +335,7 @@ func mountsToLayerAndParents(mounts []mount.Mount) (string, []string, error) {
|
|||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
isView := false
|
if mnt.ReadOnly() {
|
||||||
for _, o := range mnt.Options {
|
|
||||||
if o == "ro" {
|
|
||||||
isView = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if isView {
|
|
||||||
if mnt.Type == "bind" && len(parentLayerPaths) != 0 {
|
if mnt.Type == "bind" && len(parentLayerPaths) != 0 {
|
||||||
return "", nil, fmt.Errorf("unexpected bind-mount View with parents: %w", errdefs.ErrInvalidArgument)
|
return "", nil, fmt.Errorf("unexpected bind-mount View with parents: %w", errdefs.ErrInvalidArgument)
|
||||||
} else if mnt.Type == "bind" {
|
} else if mnt.Type == "bind" {
|
||||||
|
@ -38,18 +38,19 @@ var (
|
|||||||
ErrNotImplementOnWindows = errors.New("not implemented under windows")
|
ErrNotImplementOnWindows = errors.New("not implemented under windows")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Mount to the provided target.
|
func (m *Mount) ReadOnly() bool {
|
||||||
func (m *Mount) mount(target string) (retErr error) {
|
|
||||||
readOnly := false
|
|
||||||
for _, option := range m.Options {
|
for _, option := range m.Options {
|
||||||
if option == "ro" {
|
if option == "ro" {
|
||||||
readOnly = true
|
return true
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mount to the provided target.
|
||||||
|
func (m *Mount) mount(target string) (retErr error) {
|
||||||
if m.Type == "bind" {
|
if m.Type == "bind" {
|
||||||
if err := bindfilter.ApplyFileBinding(target, m.Source, readOnly); err != nil {
|
if err := bindfilter.ApplyFileBinding(target, m.Source, m.ReadOnly()); err != nil {
|
||||||
return fmt.Errorf("failed to bind-mount to %s: %w", target, err)
|
return fmt.Errorf("failed to bind-mount to %s: %w", target, err)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -98,7 +99,7 @@ func (m *Mount) mount(target string) (retErr error) {
|
|||||||
return fmt.Errorf("failed to get volume path for layer %s: %w", m.Source, err)
|
return fmt.Errorf("failed to get volume path for layer %s: %w", m.Source, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := bindfilter.ApplyFileBinding(target, volume, readOnly); err != nil {
|
if err := bindfilter.ApplyFileBinding(target, volume, m.ReadOnly()); err != nil {
|
||||||
return fmt.Errorf("failed to set volume mount path for layer %s: %w", m.Source, err)
|
return fmt.Errorf("failed to set volume mount path for layer %s: %w", m.Source, err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
|
Loading…
Reference in New Issue
Block a user