Signed-off-by: Alexander Morozov <lk4d4@docker.com>
| ... | ... |
@@ -386,9 +386,14 @@ func (s *router) postBuild(ctx context.Context, w http.ResponseWriter, r *http.R |
| 386 | 386 |
UIDMaps: uidMaps, |
| 387 | 387 |
GIDMaps: gidMaps, |
| 388 | 388 |
} |
| 389 |
- docker := daemonbuilder.Docker{s.daemon, output, authConfigs, defaultArchiver}
|
|
| 389 |
+ docker := &daemonbuilder.Docker{
|
|
| 390 |
+ Daemon: s.daemon, |
|
| 391 |
+ OutOld: output, |
|
| 392 |
+ AuthConfigs: authConfigs, |
|
| 393 |
+ Archiver: defaultArchiver, |
|
| 394 |
+ } |
|
| 390 | 395 |
|
| 391 |
- b, err := dockerfile.NewBuilder(buildConfig, docker, builder.DockerIgnoreContext{context}, nil)
|
|
| 396 |
+ b, err := dockerfile.NewBuilder(buildConfig, docker, builder.DockerIgnoreContext{ModifiableContext: context}, nil)
|
|
| 392 | 397 |
if err != nil {
|
| 393 | 398 |
return errf(err) |
| 394 | 399 |
} |
| ... | ... |
@@ -31,7 +31,7 @@ func (daemon *Daemon) ContainerCreate(params *ContainerCreateConfig) (types.Cont |
| 31 | 31 |
|
| 32 | 32 |
warnings, err := daemon.verifyContainerSettings(params.HostConfig, params.Config) |
| 33 | 33 |
if err != nil {
|
| 34 |
- return types.ContainerCreateResponse{"", warnings}, err
|
|
| 34 |
+ return types.ContainerCreateResponse{ID: "", Warnings: warnings}, err
|
|
| 35 | 35 |
} |
| 36 | 36 |
|
| 37 | 37 |
daemon.adaptContainerSettings(params.HostConfig, params.AdjustCPUShares) |
| ... | ... |
@@ -40,18 +40,18 @@ func (daemon *Daemon) ContainerCreate(params *ContainerCreateConfig) (types.Cont |
| 40 | 40 |
if err != nil {
|
| 41 | 41 |
if daemon.Graph().IsNotExist(err, params.Config.Image) {
|
| 42 | 42 |
if strings.Contains(params.Config.Image, "@") {
|
| 43 |
- return types.ContainerCreateResponse{"", warnings}, derr.ErrorCodeNoSuchImageHash.WithArgs(params.Config.Image)
|
|
| 43 |
+ return types.ContainerCreateResponse{ID: "", Warnings: warnings}, derr.ErrorCodeNoSuchImageHash.WithArgs(params.Config.Image)
|
|
| 44 | 44 |
} |
| 45 | 45 |
img, tag := parsers.ParseRepositoryTag(params.Config.Image) |
| 46 | 46 |
if tag == "" {
|
| 47 | 47 |
tag = tags.DefaultTag |
| 48 | 48 |
} |
| 49 |
- return types.ContainerCreateResponse{"", warnings}, derr.ErrorCodeNoSuchImageTag.WithArgs(img, tag)
|
|
| 49 |
+ return types.ContainerCreateResponse{ID: "", Warnings: warnings}, derr.ErrorCodeNoSuchImageTag.WithArgs(img, tag)
|
|
| 50 | 50 |
} |
| 51 |
- return types.ContainerCreateResponse{"", warnings}, err
|
|
| 51 |
+ return types.ContainerCreateResponse{ID: "", Warnings: warnings}, err
|
|
| 52 | 52 |
} |
| 53 | 53 |
|
| 54 |
- return types.ContainerCreateResponse{container.ID, warnings}, nil
|
|
| 54 |
+ return types.ContainerCreateResponse{ID: container.ID, Warnings: warnings}, nil
|
|
| 55 | 55 |
} |
| 56 | 56 |
|
| 57 | 57 |
// Create creates a new container from the given configuration with a given name. |
| ... | ... |
@@ -43,7 +43,12 @@ func (daemon *Daemon) ContainerInspect(name string, size bool) (*types.Container |
| 43 | 43 |
Networks: container.NetworkSettings.Networks, |
| 44 | 44 |
} |
| 45 | 45 |
|
| 46 |
- return &types.ContainerJSON{base, mountPoints, container.Config, networkSettings}, nil
|
|
| 46 |
+ return &types.ContainerJSON{
|
|
| 47 |
+ ContainerJSONBase: base, |
|
| 48 |
+ Mounts: mountPoints, |
|
| 49 |
+ Config: container.Config, |
|
| 50 |
+ NetworkSettings: networkSettings, |
|
| 51 |
+ }, nil |
|
| 47 | 52 |
} |
| 48 | 53 |
|
| 49 | 54 |
// ContainerInspect120 serializes the master version of a container into a json type. |
| ... | ... |
@@ -63,15 +68,20 @@ func (daemon *Daemon) ContainerInspect120(name string) (*v1p20.ContainerJSON, er |
| 63 | 63 |
|
| 64 | 64 |
mountPoints := addMountPoints(container) |
| 65 | 65 |
config := &v1p20.ContainerConfig{
|
| 66 |
- container.Config, |
|
| 67 |
- container.Config.MacAddress, |
|
| 68 |
- container.Config.NetworkDisabled, |
|
| 69 |
- container.Config.ExposedPorts, |
|
| 70 |
- container.hostConfig.VolumeDriver, |
|
| 66 |
+ Config: container.Config, |
|
| 67 |
+ MacAddress: container.Config.MacAddress, |
|
| 68 |
+ NetworkDisabled: container.Config.NetworkDisabled, |
|
| 69 |
+ ExposedPorts: container.Config.ExposedPorts, |
|
| 70 |
+ VolumeDriver: container.hostConfig.VolumeDriver, |
|
| 71 | 71 |
} |
| 72 | 72 |
networkSettings := daemon.getBackwardsCompatibleNetworkSettings(container.NetworkSettings) |
| 73 | 73 |
|
| 74 |
- return &v1p20.ContainerJSON{base, mountPoints, config, networkSettings}, nil
|
|
| 74 |
+ return &v1p20.ContainerJSON{
|
|
| 75 |
+ ContainerJSONBase: base, |
|
| 76 |
+ Mounts: mountPoints, |
|
| 77 |
+ Config: config, |
|
| 78 |
+ NetworkSettings: networkSettings, |
|
| 79 |
+ }, nil |
|
| 75 | 80 |
} |
| 76 | 81 |
|
| 77 | 82 |
func (daemon *Daemon) getInspectData(container *Container, size bool) (*types.ContainerJSONBase, error) {
|
| ... | ... |
@@ -40,19 +40,25 @@ func (daemon *Daemon) ContainerInspectPre120(name string) (*v1p19.ContainerJSON, |
| 40 | 40 |
} |
| 41 | 41 |
|
| 42 | 42 |
config := &v1p19.ContainerConfig{
|
| 43 |
- container.Config, |
|
| 44 |
- container.Config.MacAddress, |
|
| 45 |
- container.Config.NetworkDisabled, |
|
| 46 |
- container.Config.ExposedPorts, |
|
| 47 |
- container.hostConfig.VolumeDriver, |
|
| 48 |
- container.hostConfig.Memory, |
|
| 49 |
- container.hostConfig.MemorySwap, |
|
| 50 |
- container.hostConfig.CPUShares, |
|
| 51 |
- container.hostConfig.CpusetCpus, |
|
| 43 |
+ Config: container.Config, |
|
| 44 |
+ MacAddress: container.Config.MacAddress, |
|
| 45 |
+ NetworkDisabled: container.Config.NetworkDisabled, |
|
| 46 |
+ ExposedPorts: container.Config.ExposedPorts, |
|
| 47 |
+ VolumeDriver: container.hostConfig.VolumeDriver, |
|
| 48 |
+ Memory: container.hostConfig.Memory, |
|
| 49 |
+ MemorySwap: container.hostConfig.MemorySwap, |
|
| 50 |
+ CPUShares: container.hostConfig.CPUShares, |
|
| 51 |
+ CPUSet: container.hostConfig.CpusetCpus, |
|
| 52 | 52 |
} |
| 53 | 53 |
networkSettings := daemon.getBackwardsCompatibleNetworkSettings(container.NetworkSettings) |
| 54 | 54 |
|
| 55 |
- return &v1p19.ContainerJSON{base, volumes, volumesRW, config, networkSettings}, nil
|
|
| 55 |
+ return &v1p19.ContainerJSON{
|
|
| 56 |
+ ContainerJSONBase: base, |
|
| 57 |
+ Volumes: volumes, |
|
| 58 |
+ VolumesRW: volumesRW, |
|
| 59 |
+ Config: config, |
|
| 60 |
+ NetworkSettings: networkSettings, |
|
| 61 |
+ }, nil |
|
| 56 | 62 |
} |
| 57 | 63 |
|
| 58 | 64 |
func addMountPoints(container *Container) []types.MountPoint {
|
| ... | ... |
@@ -31,7 +31,7 @@ type v1Puller struct {
|
| 31 | 31 |
func (p *v1Puller) Pull(tag string) (fallback bool, err error) {
|
| 32 | 32 |
if utils.DigestReference(tag) {
|
| 33 | 33 |
// Allowing fallback, because HTTPS v1 is before HTTP v2 |
| 34 |
- return true, registry.ErrNoSupport{errors.New("Cannot pull by digest with v1 registry")}
|
|
| 34 |
+ return true, registry.ErrNoSupport{Err: errors.New("Cannot pull by digest with v1 registry")}
|
|
| 35 | 35 |
} |
| 36 | 36 |
|
| 37 | 37 |
tlsConfig, err := p.registryService.TLSConfig(p.repoInfo.Index.Name) |
| ... | ... |
@@ -31,6 +31,18 @@ const ( |
| 31 | 31 |
ChangeDelete |
| 32 | 32 |
) |
| 33 | 33 |
|
| 34 |
+func (c ChangeType) String() string {
|
|
| 35 |
+ switch c {
|
|
| 36 |
+ case ChangeModify: |
|
| 37 |
+ return "C" |
|
| 38 |
+ case ChangeAdd: |
|
| 39 |
+ return "A" |
|
| 40 |
+ case ChangeDelete: |
|
| 41 |
+ return "D" |
|
| 42 |
+ } |
|
| 43 |
+ return "" |
|
| 44 |
+} |
|
| 45 |
+ |
|
| 34 | 46 |
// Change represents a change, it wraps the change type and path. |
| 35 | 47 |
// It describes changes of the files in the path respect to the |
| 36 | 48 |
// parent layers. The change could be modify, add, delete. |
| ... | ... |
@@ -41,16 +53,7 @@ type Change struct {
|
| 41 | 41 |
} |
| 42 | 42 |
|
| 43 | 43 |
func (change *Change) String() string {
|
| 44 |
- var kind string |
|
| 45 |
- switch change.Kind {
|
|
| 46 |
- case ChangeModify: |
|
| 47 |
- kind = "C" |
|
| 48 |
- case ChangeAdd: |
|
| 49 |
- kind = "A" |
|
| 50 |
- case ChangeDelete: |
|
| 51 |
- kind = "D" |
|
| 52 |
- } |
|
| 53 |
- return fmt.Sprintf("%s %s", kind, change.Path)
|
|
| 44 |
+ return fmt.Sprintf("%s %s", change.Kind, change.Path)
|
|
| 54 | 45 |
} |
| 55 | 46 |
|
| 56 | 47 |
// for sort.Sort |
| ... | ... |
@@ -39,14 +39,14 @@ var dockerUserAgent string |
| 39 | 39 |
|
| 40 | 40 |
func init() {
|
| 41 | 41 |
httpVersion := make([]useragent.VersionInfo, 0, 6) |
| 42 |
- httpVersion = append(httpVersion, useragent.VersionInfo{"docker", dockerversion.VERSION})
|
|
| 43 |
- httpVersion = append(httpVersion, useragent.VersionInfo{"go", runtime.Version()})
|
|
| 44 |
- httpVersion = append(httpVersion, useragent.VersionInfo{"git-commit", dockerversion.GITCOMMIT})
|
|
| 42 |
+ httpVersion = append(httpVersion, useragent.VersionInfo{Name: "docker", Version: dockerversion.VERSION})
|
|
| 43 |
+ httpVersion = append(httpVersion, useragent.VersionInfo{Name: "go", Version: runtime.Version()})
|
|
| 44 |
+ httpVersion = append(httpVersion, useragent.VersionInfo{Name: "git-commit", Version: dockerversion.GITCOMMIT})
|
|
| 45 | 45 |
if kernelVersion, err := kernel.GetKernelVersion(); err == nil {
|
| 46 |
- httpVersion = append(httpVersion, useragent.VersionInfo{"kernel", kernelVersion.String()})
|
|
| 46 |
+ httpVersion = append(httpVersion, useragent.VersionInfo{Name: "kernel", Version: kernelVersion.String()})
|
|
| 47 | 47 |
} |
| 48 |
- httpVersion = append(httpVersion, useragent.VersionInfo{"os", runtime.GOOS})
|
|
| 49 |
- httpVersion = append(httpVersion, useragent.VersionInfo{"arch", runtime.GOARCH})
|
|
| 48 |
+ httpVersion = append(httpVersion, useragent.VersionInfo{Name: "os", Version: runtime.GOOS})
|
|
| 49 |
+ httpVersion = append(httpVersion, useragent.VersionInfo{Name: "arch", Version: runtime.GOARCH})
|
|
| 50 | 50 |
|
| 51 | 51 |
dockerUserAgent = useragent.AppendVersions("", httpVersion...)
|
| 52 | 52 |
|