lcow_parser.go 902 B

12345678910111213141516171819202122232425262728293031323334
  1. package volume
  2. import (
  3. "errors"
  4. "path"
  5. "github.com/docker/docker/api/types/mount"
  6. )
  7. var lcowSpecificValidators mountValidator = func(m *mount.Mount) error {
  8. if path.Clean(m.Target) == "/" {
  9. return ErrVolumeTargetIsRoot
  10. }
  11. if m.Type == mount.TypeNamedPipe {
  12. return errors.New("Linux containers on Windows do not support named pipe mounts")
  13. }
  14. return nil
  15. }
  16. type lcowParser struct {
  17. windowsParser
  18. }
  19. func (p *lcowParser) ValidateMountConfig(mnt *mount.Mount) error {
  20. return p.validateMountConfigReg(mnt, rxLCOWDestination, lcowSpecificValidators)
  21. }
  22. func (p *lcowParser) ParseMountRaw(raw, volumeDriver string) (*MountPoint, error) {
  23. return p.parseMountRaw(raw, volumeDriver, rxLCOWDestination, false, lcowSpecificValidators)
  24. }
  25. func (p *lcowParser) ParseMountSpec(cfg mount.Mount) (*MountPoint, error) {
  26. return p.parseMountSpec(cfg, rxLCOWDestination, false, lcowSpecificValidators)
  27. }