Merge pull request #2579 from lifubang/ctrrun
fix when --config provided, don't need Image/RootFS
This commit is contained in:
commit
1597270d04
@ -53,11 +53,22 @@ var createCommand = cli.Command{
|
||||
Flags: append(commands.SnapshotterFlags, commands.ContainerFlags...),
|
||||
Action: func(context *cli.Context) error {
|
||||
var (
|
||||
id = context.Args().Get(1)
|
||||
ref = context.Args().First()
|
||||
id string
|
||||
ref string
|
||||
config = context.IsSet("config")
|
||||
)
|
||||
if ref == "" {
|
||||
return errors.New("image ref must be provided")
|
||||
|
||||
if config {
|
||||
id = context.Args().First()
|
||||
if context.NArg() > 1 {
|
||||
return errors.New("with spec config file, only container id should be provided")
|
||||
}
|
||||
} else {
|
||||
id = context.Args().Get(1)
|
||||
ref = context.Args().First()
|
||||
if ref == "" {
|
||||
return errors.New("image ref must be provided")
|
||||
}
|
||||
}
|
||||
if id == "" {
|
||||
return errors.New("container id must be provided")
|
||||
|
@ -110,15 +110,26 @@ var Command = cli.Command{
|
||||
Action: func(context *cli.Context) error {
|
||||
var (
|
||||
err error
|
||||
id string
|
||||
ref string
|
||||
|
||||
id = context.Args().Get(1)
|
||||
ref = context.Args().First()
|
||||
tty = context.Bool("tty")
|
||||
detach = context.Bool("detach")
|
||||
config = context.IsSet("config")
|
||||
)
|
||||
|
||||
if ref == "" {
|
||||
return errors.New("image ref must be provided")
|
||||
if config {
|
||||
id = context.Args().First()
|
||||
if context.NArg() > 1 {
|
||||
return errors.New("with spec config file, only container id should be provided")
|
||||
}
|
||||
} else {
|
||||
id = context.Args().Get(1)
|
||||
ref = context.Args().First()
|
||||
|
||||
if ref == "" {
|
||||
return errors.New("image ref must be provided")
|
||||
}
|
||||
}
|
||||
if id == "" {
|
||||
return errors.New("container id must be provided")
|
||||
|
@ -35,10 +35,14 @@ import (
|
||||
// NewContainer creates a new container
|
||||
func NewContainer(ctx gocontext.Context, client *containerd.Client, context *cli.Context) (containerd.Container, error) {
|
||||
var (
|
||||
ref = context.Args().First()
|
||||
id = context.Args().Get(1)
|
||||
args = context.Args()[2:]
|
||||
id string
|
||||
config = context.IsSet("config")
|
||||
)
|
||||
if config {
|
||||
id = context.Args().First()
|
||||
} else {
|
||||
id = context.Args().Get(1)
|
||||
}
|
||||
|
||||
if raw := context.String("checkpoint"); raw != "" {
|
||||
im, err := client.GetImage(ctx, raw)
|
||||
@ -54,9 +58,14 @@ func NewContainer(ctx gocontext.Context, client *containerd.Client, context *cli
|
||||
spec containerd.NewContainerOpts
|
||||
)
|
||||
|
||||
if context.IsSet("config") {
|
||||
if config {
|
||||
opts = append(opts, oci.WithSpecFromFile(context.String("config")))
|
||||
} else {
|
||||
var (
|
||||
ref = context.Args().First()
|
||||
//for container's id is Args[1]
|
||||
args = context.Args()[2:]
|
||||
)
|
||||
opts = append(opts, oci.WithDefaultSpec(), oci.WithDefaultUnixDevices)
|
||||
opts = append(opts, oci.WithEnv(context.StringSlice("env")))
|
||||
opts = append(opts, withMounts(context))
|
||||
|
Loading…
Reference in New Issue
Block a user