| package daemon |
| |
| import ( |
| "os" |
| "path/filepath" |
| |
| "github.com/containerd/containerd/content" |
| "github.com/containerd/containerd/content/local" |
| "github.com/containerd/containerd/leases" |
| "github.com/containerd/containerd/metadata" |
| "github.com/pkg/errors" |
| "go.etcd.io/bbolt" |
| ) |
| |
| func (d *Daemon) configureLocalContentStore() (content.Store, leases.Manager, error) { |
| if err := os.MkdirAll(filepath.Join(d.root, "content"), 0700); err != nil { |
| return nil, nil, errors.Wrap(err, "error creating dir for content store") |
| } |
| db, err := bbolt.Open(filepath.Join(d.root, "content", "metadata.db"), 0600, nil) |
| if err != nil { |
| return nil, nil, errors.Wrap(err, "error opening bolt db for content metadata store") |
| } |
| cs, err := local.NewStore(filepath.Join(d.root, "content", "data")) |
| if err != nil { |
| return nil, nil, errors.Wrap(err, "error setting up content store") |
| } |
| md := metadata.NewDB(db, cs, nil) |
| d.mdDB = db |
| return md.ContentStore(), metadata.NewLeaseManager(md), nil |
| } |