rootless, create: support --pod

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1372
Approved by: mheon
This commit is contained in:
Giuseppe Scrivano
2018-08-29 13:34:03 +02:00
committed by Atomic Bot
parent 8ca67d2794
commit 1ac1c54027
2 changed files with 14 additions and 1 deletions

View File

@@ -99,6 +99,10 @@ func createCmd(c *cli.Context) error {
storageOpts.UIDMap = mappings.UIDMap
storageOpts.GIDMap = mappings.GIDMap
if os.Getuid() != 0 {
rootless.SetSkipStorageSetup(true)
}
runtime, err := libpodruntime.GetRuntimeWithStorageOpts(c, &storageOpts)
if err != nil {
return errors.Wrapf(err, "error creating libpod runtime")
@@ -110,7 +114,7 @@ func createCmd(c *cli.Context) error {
imageName := ""
var data *inspect.ImageData = nil
if rootfs == "" {
if rootfs == "" && !rootless.SkipStorageSetup() {
newImage, err := runtime.ImageRuntime().New(ctx, c.Args()[0], rtc.SignaturePolicyPath, "", os.Stderr, nil, image.SigningOptions{}, false, false)
if err != nil {
return err
@@ -133,6 +137,14 @@ func createCmd(c *cli.Context) error {
return err
}
became, ret, err := joinOrCreateRootlessUserNamespace(createConfig, runtime)
if err != nil {
return err
}
if became {
os.Exit(ret)
}
ctr, err := runtime.NewContainer(ctx, runtimeSpec, options...)
if err != nil {
return err