diff --git a/linux/proc/types.go b/linux/proc/types.go index 9055c25d1..42dae5abf 100644 --- a/linux/proc/types.go +++ b/linux/proc/types.go @@ -1,16 +1,22 @@ package proc import ( - containerd_types "github.com/containerd/containerd/api/types" google_protobuf "github.com/gogo/protobuf/types" ) +type Mount struct { + Type string + Source string + Target string + Options []string +} + // CreateConfig hold task creation configuration type CreateConfig struct { ID string Bundle string Runtime string - Rootfs []*containerd_types.Mount + Rootfs []Mount Terminal bool Stdin string Stdout string diff --git a/linux/shim/service.go b/linux/shim/service.go index a8c0b7b1f..cf5baf11d 100644 --- a/linux/shim/service.go +++ b/linux/shim/service.go @@ -95,6 +95,16 @@ type Service struct { func (s *Service) Create(ctx context.Context, r *shimapi.CreateTaskRequest) (*shimapi.CreateTaskResponse, error) { s.mu.Lock() defer s.mu.Unlock() + + var mounts []proc.Mount + for _, m := range r.Rootfs { + mounts = append(mounts, proc.Mount{ + Type: m.Type, + Source: m.Source, + Target: m.Target, + Options: m.Options, + }) + } process, err := proc.New( ctx, s.config.Path, @@ -108,7 +118,7 @@ func (s *Service) Create(ctx context.Context, r *shimapi.CreateTaskRequest) (*sh ID: r.ID, Bundle: r.Bundle, Runtime: r.Runtime, - Rootfs: r.Rootfs, + Rootfs: mounts, Terminal: r.Terminal, Stdin: r.Stdin, Stdout: r.Stdout,