inspect_unix.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // +build !windows,!solaris
  2. package daemon
  3. import (
  4. "github.com/docker/docker/api/types"
  5. "github.com/docker/docker/api/types/backend"
  6. "github.com/docker/docker/api/types/versions/v1p19"
  7. "github.com/docker/docker/container"
  8. "github.com/docker/docker/daemon/exec"
  9. )
  10. // This sets platform-specific fields
  11. func setPlatformSpecificContainerFields(container *container.Container, contJSONBase *types.ContainerJSONBase) *types.ContainerJSONBase {
  12. contJSONBase.AppArmorProfile = container.AppArmorProfile
  13. contJSONBase.ResolvConfPath = container.ResolvConfPath
  14. contJSONBase.HostnamePath = container.HostnamePath
  15. contJSONBase.HostsPath = container.HostsPath
  16. return contJSONBase
  17. }
  18. // containerInspectPre120 gets containers for pre 1.20 APIs.
  19. func (daemon *Daemon) containerInspectPre120(name string) (*v1p19.ContainerJSON, error) {
  20. container, err := daemon.GetContainer(name)
  21. if err != nil {
  22. return nil, err
  23. }
  24. container.Lock()
  25. defer container.Unlock()
  26. base, err := daemon.getInspectData(container)
  27. if err != nil {
  28. return nil, err
  29. }
  30. volumes := make(map[string]string)
  31. volumesRW := make(map[string]bool)
  32. for _, m := range container.MountPoints {
  33. volumes[m.Destination] = m.Path()
  34. volumesRW[m.Destination] = m.RW
  35. }
  36. config := &v1p19.ContainerConfig{
  37. Config: container.Config,
  38. MacAddress: container.Config.MacAddress,
  39. NetworkDisabled: container.Config.NetworkDisabled,
  40. ExposedPorts: container.Config.ExposedPorts,
  41. VolumeDriver: container.HostConfig.VolumeDriver,
  42. Memory: container.HostConfig.Memory,
  43. MemorySwap: container.HostConfig.MemorySwap,
  44. CPUShares: container.HostConfig.CPUShares,
  45. CPUSet: container.HostConfig.CpusetCpus,
  46. }
  47. networkSettings := daemon.getBackwardsCompatibleNetworkSettings(container.NetworkSettings)
  48. return &v1p19.ContainerJSON{
  49. ContainerJSONBase: base,
  50. Volumes: volumes,
  51. VolumesRW: volumesRW,
  52. Config: config,
  53. NetworkSettings: networkSettings,
  54. }, nil
  55. }
  56. func inspectExecProcessConfig(e *exec.Config) *backend.ExecProcessConfig {
  57. return &backend.ExecProcessConfig{
  58. Tty: e.Tty,
  59. Entrypoint: e.Entrypoint,
  60. Arguments: e.Args,
  61. Privileged: &e.Privileged,
  62. User: e.User,
  63. }
  64. }