summaryrefslogtreecommitdiffhomepage
path: root/runsc/container/fs.go
diff options
context:
space:
mode:
Diffstat (limited to 'runsc/container/fs.go')
-rw-r--r--runsc/container/fs.go12
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)