diff options
Diffstat (limited to 'runsc/container/fs.go')
-rw-r--r-- | runsc/container/fs.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/runsc/container/fs.go b/runsc/container/fs.go index 41022686b..97195550f 100644 --- a/runsc/container/fs.go +++ b/runsc/container/fs.go @@ -87,7 +87,7 @@ func setupFS(spec *specs.Spec, conf *boot.Config, bundleDir string) ([]specs.Mou // container. dst, err := resolveSymlinks(spec.Root.Path, m.Destination) if err != nil { - return nil, fmt.Errorf("failed to resolve symlinks: %v", err) + return nil, fmt.Errorf("resolving symlinks to %q: %v", m.Destination, err) } flags := optionsToFlags(m.Options) @@ -113,6 +113,16 @@ func setupFS(spec *specs.Spec, conf *boot.Config, bundleDir string) ([]specs.Mou rv = append(rv, cpy) } + if spec.Process.Cwd != "" { + dst, err := resolveSymlinks(spec.Root.Path, spec.Process.Cwd) + if err != nil { + return nil, fmt.Errorf("resolving symlinks to %q: %v", spec.Process.Cwd, err) + } + if err := os.MkdirAll(dst, 0755); err != nil { + return nil, err + } + } + // If root is read only, check if it needs to be remounted as readonly. if spec.Root.Readonly { isMountPoint, readonly, err := mountInfo(spec.Root.Path) |