123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package mounts // import "github.com/docker/docker/volume/mounts"
- import (
- "errors"
- "runtime"
- "github.com/docker/docker/api/types/mount"
- )
- // ErrVolumeTargetIsRoot is returned when the target destination is root.
- // It's used by both LCOW and Linux parsers.
- var ErrVolumeTargetIsRoot = errors.New("invalid specification: destination can't be '/'")
- // read-write modes
- var rwModes = map[string]bool{
- "rw": true,
- "ro": true, // attempts recursive read-only if possible
- }
- // Parser represents a platform specific parser for mount expressions
- type Parser interface {
- ParseMountRaw(raw, volumeDriver string) (*MountPoint, error)
- ParseMountSpec(cfg mount.Mount) (*MountPoint, error)
- ParseVolumesFrom(spec string) (string, string, error)
- DefaultPropagationMode() mount.Propagation
- ConvertTmpfsOptions(opt *mount.TmpfsOptions, readOnly bool) (string, error)
- DefaultCopyMode() bool
- ValidateVolumeName(name string) error
- ReadWrite(mode string) bool
- IsBackwardCompatible(m *MountPoint) bool
- HasResource(m *MountPoint, absPath string) bool
- ValidateTmpfsMountDestination(dest string) error
- ValidateMountConfig(mt *mount.Mount) error
- }
- // NewParser creates a parser for the current host OS
- func NewParser() Parser {
- if runtime.GOOS == "windows" {
- return NewWindowsParser()
- }
- return NewLinuxParser()
- }
|