Use user-specific temp directory if set
This allows non-privileged users to use containerd. This is part of a larger track of work integrating containerd into Cloudfoundry's garden with support for rootless. [#156343575] Signed-off-by: Claudia Beresford <cberesford@pivotal.io>
This commit is contained in:
parent
40c3acd36c
commit
fc8bce59b9
@ -199,7 +199,7 @@ func applyNaive(ctx context.Context, root string, tr *tar.Reader, options ApplyO
|
|||||||
basename := filepath.Base(hdr.Name)
|
basename := filepath.Base(hdr.Name)
|
||||||
aufsHardlinks[basename] = hdr
|
aufsHardlinks[basename] = hdr
|
||||||
if aufsTempdir == "" {
|
if aufsTempdir == "" {
|
||||||
if aufsTempdir, err = ioutil.TempDir("", "dockerplnk"); err != nil {
|
if aufsTempdir, err = ioutil.TempDir(os.Getenv("XDG_RUNTIME_DIR"), "dockerplnk"); err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
defer os.RemoveAll(aufsTempdir)
|
defer os.RemoveAll(aufsTempdir)
|
||||||
|
@ -506,7 +506,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func edit(rd io.Reader) (io.ReadCloser, error) {
|
func edit(rd io.Reader) (io.ReadCloser, error) {
|
||||||
tmp, err := ioutil.TempFile("", "edit-")
|
tmp, err := ioutil.TempFile(os.Getenv("XDG_RUNTIME_DIR"), "edit-")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ func WithDefaultProfile(name string) oci.SpecOpts {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
f, err := ioutil.TempFile("", p.Name)
|
f, err := ioutil.TempFile(os.Getenv("XDG_RUNTIME_DIR"), p.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
var tempMountLocation = os.TempDir()
|
var tempMountLocation = getTempDir()
|
||||||
|
|
||||||
// WithTempMount mounts the provided mounts to a temp dir, and pass the temp dir to f.
|
// WithTempMount mounts the provided mounts to a temp dir, and pass the temp dir to f.
|
||||||
// The mounts are valid during the call to the f.
|
// The mounts are valid during the call to the f.
|
||||||
@ -64,3 +64,10 @@ func WithTempMount(ctx context.Context, mounts []Mount, f func(root string) erro
|
|||||||
}
|
}
|
||||||
return errors.Wrapf(f(root), "mount callback failed on %s", root)
|
return errors.Wrapf(f(root), "mount callback failed on %s", root)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getTempDir() string {
|
||||||
|
if xdg := os.Getenv("XDG_RUNTIME_DIR"); xdg != "" {
|
||||||
|
return xdg
|
||||||
|
}
|
||||||
|
return os.TempDir()
|
||||||
|
}
|
||||||
|
@ -75,7 +75,7 @@ func createInitLayer(ctx context.Context, parent, initName string, initFn func(s
|
|||||||
// TODO: ensure not exist error once added to snapshot package
|
// TODO: ensure not exist error once added to snapshot package
|
||||||
|
|
||||||
// Create tempdir
|
// Create tempdir
|
||||||
td, err := ioutil.TempDir("", "create-init-")
|
td, err := ioutil.TempDir(os.Getenv("XDG_RUNTIME_DIR"), "create-init-")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,7 @@ func (l *local) Create(ctx context.Context, r *api.CreateTaskRequest, _ ...grpc.
|
|||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
if r.Checkpoint != nil {
|
if r.Checkpoint != nil {
|
||||||
checkpointPath, err = ioutil.TempDir("", "ctrd-checkpoint")
|
checkpointPath, err = ioutil.TempDir(os.Getenv("XDG_RUNTIME_DIR"), "ctrd-checkpoint")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -450,7 +450,7 @@ func (l *local) Checkpoint(ctx context.Context, r *api.CheckpointTaskRequest, _
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
image, err := ioutil.TempDir("", "ctd-checkpoint")
|
image, err := ioutil.TempDir(os.Getenv("XDG_RUNTIME_DIR"), "ctd-checkpoint")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errdefs.ToGRPC(err)
|
return nil, errdefs.ToGRPC(err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user