bump docker to f76d6a078d881f410c00e8d900dcdfc2e026c841

Signed-off-by: Olli Janatuinen <olli.janatuinen@gmail.com>
This commit is contained in:
Olli Janatuinen 2018-12-31 07:45:37 +02:00
parent 4eab3cd19a
commit 0ac5c15fd4
13 changed files with 110 additions and 49 deletions

View File

@ -13,7 +13,7 @@ github.com/cpuguy83/go-md2man v1.0.8
github.com/davecgh/go-spew 346938d642f2ec3594ed81d874461961cd0faa76 # v1.1.0 github.com/davecgh/go-spew 346938d642f2ec3594ed81d874461961cd0faa76 # v1.1.0
github.com/dgrijalva/jwt-go a2c85815a77d0f951e33ba4db5ae93629a1530af github.com/dgrijalva/jwt-go a2c85815a77d0f951e33ba4db5ae93629a1530af
github.com/docker/distribution 83389a148052d74ac602f5f1d62f86ff2f3c4aa5 github.com/docker/distribution 83389a148052d74ac602f5f1d62f86ff2f3c4aa5
github.com/docker/docker 6e3113f700dea1bf2785d94731b4b5a1e602d9ab github.com/docker/docker f76d6a078d881f410c00e8d900dcdfc2e026c841
github.com/docker/compose-on-kubernetes a6086e2369e39c2058a003a7eb42e567ecfd1f03 # v0.4.17 github.com/docker/compose-on-kubernetes a6086e2369e39c2058a003a7eb42e567ecfd1f03 # v0.4.17
github.com/docker/docker-credential-helpers 5241b46610f2491efdf9d1c85f1ddf5b02f6d962 github.com/docker/docker-credential-helpers 5241b46610f2491efdf9d1c85f1ddf5b02f6d962
# the docker/go package contains a customized version of canonical/json # the docker/go package contains a customized version of canonical/json

View File

@ -127,6 +127,7 @@ type ResourceRequirements struct {
type Placement struct { type Placement struct {
Constraints []string `json:",omitempty"` Constraints []string `json:",omitempty"`
Preferences []PlacementPreference `json:",omitempty"` Preferences []PlacementPreference `json:",omitempty"`
MaxReplicas uint64 `json:",omitempty"`
// Platforms stores all the platforms that the image can run on. // Platforms stores all the platforms that the image can run on.
// This field is used in the platform filter for scheduling. If empty, // This field is used in the platform filter for scheduling. If empty,

View File

@ -19,10 +19,10 @@ func (cli *Client) ContainerInspect(ctx context.Context, containerID string) (ty
if err != nil { if err != nil {
return types.ContainerJSON{}, wrapResponseError(err, serverResp, "container", containerID) return types.ContainerJSON{}, wrapResponseError(err, serverResp, "container", containerID)
} }
defer ensureReaderClosed(serverResp)
var response types.ContainerJSON var response types.ContainerJSON
err = json.NewDecoder(serverResp.body).Decode(&response) err = json.NewDecoder(serverResp.body).Decode(&response)
ensureReaderClosed(serverResp)
return response, err return response, err
} }

View File

@ -2,12 +2,46 @@ package mount // import "github.com/docker/docker/pkg/mount"
import ( import (
"sort" "sort"
"strconv"
"strings" "strings"
"syscall"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
) )
// mountError records an error from mount or unmount operation
type mountError struct {
op string
source, target string
flags uintptr
data string
err error
}
func (e *mountError) Error() string {
out := e.op + " "
if e.source != "" {
out += e.source + ":" + e.target
} else {
out += e.target
}
if e.flags != uintptr(0) {
out += ", flags: 0x" + strconv.FormatUint(uint64(e.flags), 16)
}
if e.data != "" {
out += ", data: " + e.data
}
out += ": " + e.err.Error()
return out
}
// Cause returns the underlying cause of the error
func (e *mountError) Cause() error {
return e.err
}
// FilterFunc is a type defining a callback function // FilterFunc is a type defining a callback function
// to filter out unwanted entries. It takes a pointer // to filter out unwanted entries. It takes a pointer
// to an Info struct (not fully populated, currently // to an Info struct (not fully populated, currently
@ -89,12 +123,7 @@ func ForceMount(device, target, mType, options string) error {
// Unmount lazily unmounts a filesystem on supported platforms, otherwise // Unmount lazily unmounts a filesystem on supported platforms, otherwise
// does a normal unmount. // does a normal unmount.
func Unmount(target string) error { func Unmount(target string) error {
err := unmount(target, mntDetach) return unmount(target, mntDetach)
if err == syscall.EINVAL {
// ignore "not mounted" error
err = nil
}
return err
} }
// RecursiveUnmount unmounts the target and all mounts underneath, starting with // RecursiveUnmount unmounts the target and all mounts underneath, starting with
@ -114,25 +143,14 @@ func RecursiveUnmount(target string) error {
logrus.Debugf("Trying to unmount %s", m.Mountpoint) logrus.Debugf("Trying to unmount %s", m.Mountpoint)
err = unmount(m.Mountpoint, mntDetach) err = unmount(m.Mountpoint, mntDetach)
if err != nil { if err != nil {
// If the error is EINVAL either this whole package is wrong (invalid flags passed to unmount(2)) or this is if i == len(mounts)-1 { // last mount
// not a mountpoint (which is ok in this case).
// Meanwhile calling `Mounted()` is very expensive.
//
// We've purposefully used `syscall.EINVAL` here instead of `unix.EINVAL` to avoid platform branching
// Since `EINVAL` is defined for both Windows and Linux in the `syscall` package (and other platforms),
// this is nicer than defining a custom value that we can refer to in each platform file.
if err == syscall.EINVAL {
continue
}
if i == len(mounts)-1 {
if mounted, e := Mounted(m.Mountpoint); e != nil || mounted { if mounted, e := Mounted(m.Mountpoint); e != nil || mounted {
return err return err
} }
continue } else {
// This is some submount, we can ignore this error for now, the final unmount will fail if this is a real problem
logrus.WithError(err).Warnf("Failed to unmount submount %s", m.Mountpoint)
} }
// This is some submount, we can ignore this error for now, the final unmount will fail if this is a real problem
logrus.WithError(err).Warnf("Failed to unmount submount %s", m.Mountpoint)
continue
} }
logrus.Debugf("Unmounted %s", m.Mountpoint) logrus.Debugf("Unmounted %s", m.Mountpoint)

View File

@ -11,11 +11,9 @@ package mount // import "github.com/docker/docker/pkg/mount"
import "C" import "C"
import ( import (
"fmt"
"strings" "strings"
"syscall"
"unsafe" "unsafe"
"golang.org/x/sys/unix"
) )
func allocateIOVecs(options []string) []C.struct_iovec { func allocateIOVecs(options []string) []C.struct_iovec {
@ -49,12 +47,13 @@ func mount(device, target, mType string, flag uintptr, data string) error {
} }
if errno := C.nmount(&rawOptions[0], C.uint(len(options)), C.int(flag)); errno != 0 { if errno := C.nmount(&rawOptions[0], C.uint(len(options)), C.int(flag)); errno != 0 {
reason := C.GoString(C.strerror(*C.__error())) return &mountError{
return fmt.Errorf("Failed to call nmount: %s", reason) op: "mount",
source: device,
target: target,
flags: flag,
err: syscall.Errno(errno),
}
} }
return nil return nil
} }
func unmount(target string, flag int) error {
return unix.Unmount(target, flag)
}

View File

@ -33,25 +33,41 @@ func mount(device, target, mType string, flags uintptr, data string) error {
// Initial call applying all non-propagation flags for mount // Initial call applying all non-propagation flags for mount
// or remount with changed data // or remount with changed data
if err := unix.Mount(device, target, mType, oflags, data); err != nil { if err := unix.Mount(device, target, mType, oflags, data); err != nil {
return err return &mountError{
op: "mount",
source: device,
target: target,
flags: oflags,
data: data,
err: err,
}
} }
} }
if flags&ptypes != 0 { if flags&ptypes != 0 {
// Change the propagation type. // Change the propagation type.
if err := unix.Mount("", target, "", flags&pflags, ""); err != nil { if err := unix.Mount("", target, "", flags&pflags, ""); err != nil {
return err return &mountError{
op: "remount",
target: target,
flags: flags & pflags,
err: err,
}
} }
} }
if oflags&broflags == broflags { if oflags&broflags == broflags {
// Remount the bind to apply read only. // Remount the bind to apply read only.
return unix.Mount("", target, "", oflags|unix.MS_REMOUNT, "") if err := unix.Mount("", target, "", oflags|unix.MS_REMOUNT, ""); err != nil {
return &mountError{
op: "remount-ro",
target: target,
flags: oflags | unix.MS_REMOUNT,
err: err,
}
}
} }
return nil return nil
} }
func unmount(target string, flag int) error {
return unix.Unmount(target, flag)
}

View File

@ -5,7 +5,3 @@ package mount // import "github.com/docker/docker/pkg/mount"
func mount(device, target, mType string, flag uintptr, data string) error { func mount(device, target, mType string, flag uintptr, data string) error {
panic("Not implemented") panic("Not implemented")
} }
func unmount(target string, flag int) error {
panic("Not implemented")
}

View File

@ -0,0 +1,22 @@
// +build !windows
package mount // import "github.com/docker/docker/pkg/mount"
import "golang.org/x/sys/unix"
func unmount(target string, flags int) error {
err := unix.Unmount(target, flags)
if err == nil || err == unix.EINVAL {
// Ignore "not mounted" error here. Note the same error
// can be returned if flags are invalid, so this code
// assumes that the flags value is always correct.
return nil
}
return &mountError{
op: "umount",
target: target,
flags: uintptr(flags),
err: err,
}
}

View File

@ -0,0 +1,7 @@
// +build windows
package mount // import "github.com/docker/docker/pkg/mount"
func unmount(target string, flag int) error {
panic("Not implemented")
}

View File

@ -3,6 +3,7 @@
package system // import "github.com/docker/docker/pkg/system" package system // import "github.com/docker/docker/pkg/system"
import ( import (
"os"
"syscall" "syscall"
) )
@ -13,7 +14,7 @@ import (
func Lstat(path string) (*StatT, error) { func Lstat(path string) (*StatT, error) {
s := &syscall.Stat_t{} s := &syscall.Stat_t{}
if err := syscall.Lstat(path, s); err != nil { if err := syscall.Lstat(path, s); err != nil {
return nil, err return nil, &os.PathError{Op: "Lstat", Path: path, Err: err}
} }
return fromStatT(s) return fromStatT(s)
} }

View File

@ -3,6 +3,7 @@
package system // import "github.com/docker/docker/pkg/system" package system // import "github.com/docker/docker/pkg/system"
import ( import (
"os"
"syscall" "syscall"
) )
@ -59,7 +60,7 @@ func (s StatT) IsDir() bool {
func Stat(path string) (*StatT, error) { func Stat(path string) (*StatT, error) {
s := &syscall.Stat_t{} s := &syscall.Stat_t{}
if err := syscall.Stat(path, s); err != nil { if err := syscall.Stat(path, s); err != nil {
return nil, err return nil, &os.PathError{Op: "Stat", Path: path, Err: err}
} }
return fromStatT(s) return fromStatT(s)
} }

View File

@ -145,7 +145,7 @@ func trustedLocation(req *http.Request) bool {
// addRequiredHeadersToRedirectedRequests adds the necessary redirection headers // addRequiredHeadersToRedirectedRequests adds the necessary redirection headers
// for redirected requests // for redirected requests
func addRequiredHeadersToRedirectedRequests(req *http.Request, via []*http.Request) error { func addRequiredHeadersToRedirectedRequests(req *http.Request, via []*http.Request) error {
if via != nil && via[0] != nil { if len(via) != 0 && via[0] != nil {
if trustedLocation(req) && trustedLocation(via[0]) { if trustedLocation(req) && trustedLocation(via[0]) {
req.Header = via[0].Header req.Header = via[0].Header
return nil return nil

View File

@ -118,9 +118,9 @@ github.com/googleapis/gax-go v2.0.0
google.golang.org/genproto 694d95ba50e67b2e363f3483057db5d4910c18f9 google.golang.org/genproto 694d95ba50e67b2e363f3483057db5d4910c18f9
# containerd # containerd
github.com/containerd/containerd 9b32062dc1f5a7c2564315c269b5059754f12b9d # v1.2.1 github.com/containerd/containerd aa5e000c963756778ab3ebd1a12c67449c503a34 # v1.2.1+
github.com/containerd/fifo 3d5202aec260678c48179c56f40e6f38a095738c github.com/containerd/fifo 3d5202aec260678c48179c56f40e6f38a095738c
github.com/containerd/continuity bd77b46c8352f74eb12c85bdc01f4b90f69d66b4 github.com/containerd/continuity 004b46473808b3e7a4a3049c20e4376c91eb966d
github.com/containerd/cgroups 5e610833b72089b37d0e615de9a92dfc043757c2 github.com/containerd/cgroups 5e610833b72089b37d0e615de9a92dfc043757c2
github.com/containerd/console c12b1e7919c14469339a5d38f2f8ed9b64a9de23 github.com/containerd/console c12b1e7919c14469339a5d38f2f8ed9b64a9de23
github.com/containerd/cri 0ca1e3c2b73b5c38e72f29bb76338d0078b23d6c # release/1.2 branch github.com/containerd/cri 0ca1e3c2b73b5c38e72f29bb76338d0078b23d6c # release/1.2 branch