diff --git a/libcontainer/configs/validate/validator.go b/libcontainer/configs/validate/validator.go index 3becd31d..3d736cff 100644 --- a/libcontainer/configs/validate/validator.go +++ b/libcontainer/configs/validate/validator.go @@ -46,6 +46,12 @@ func (v *ConfigValidator) Validate(config *configs.Config) error { // rootfs validates if the rootfs is an absolute path and is not a symlink // to the container's root filesystem. func (v *ConfigValidator) rootfs(config *configs.Config) error { + if _, err := os.Stat(config.Rootfs); err != nil { + if os.IsNotExist(err) { + return fmt.Errorf("rootfs (%s) does not exist", config.Rootfs) + } + return err + } cleaned, err := filepath.Abs(config.Rootfs) if err != nil { return err diff --git a/utils_linux.go b/utils_linux.go index c97500b4..94c520fb 100644 --- a/utils_linux.go +++ b/utils_linux.go @@ -179,13 +179,6 @@ func createContainer(context *cli.Context, id string, spec *specs.Spec) (libcont return nil, err } - if _, err := os.Stat(config.Rootfs); err != nil { - if os.IsNotExist(err) { - return nil, fmt.Errorf("rootfs (%q) does not exist", config.Rootfs) - } - return nil, err - } - factory, err := loadFactory(context) if err != nil { return nil, err