Merge pull request #27079 from vieux/cherry-picks-and-changelog-1.12.2

Cherry-picks and Changelog 1.12.2-rc2
This commit is contained in:
Victor Vieux 2016-10-03 22:34:24 -07:00 committed by GitHub
commit 545d909aac
11 changed files with 29 additions and 15 deletions

View file

@ -5,7 +5,7 @@ information on the list of deprecated flags and APIs please have a look at
https://docs.docker.com/engine/deprecated/ where target removal dates can also
be found.
## 1.12.2-rc1 (2016-09-27)
## 1.12.2-rc2 (2016-10-03)
**IMPORTANT**: Docker 1.12 ships with an updated systemd unit file for rpm
based installs (which includes RHEL, Fedora, CentOS, and Oracle Linux 7). When

View file

@ -37,7 +37,7 @@ type buildOptions struct {
context string
dockerfileName string
tags opts.ListOpts
labels []string
labels opts.ListOpts
buildArgs opts.ListOpts
ulimits *runconfigopts.UlimitOpt
memory string
@ -64,6 +64,7 @@ func NewBuildCommand(dockerCli *client.DockerCli) *cobra.Command {
tags: opts.NewListOpts(validateTag),
buildArgs: opts.NewListOpts(runconfigopts.ValidateEnv),
ulimits: runconfigopts.NewUlimitOpt(&ulimits),
labels: opts.NewListOpts(runconfigopts.ValidateEnv),
}
cmd := &cobra.Command{
@ -92,7 +93,7 @@ func NewBuildCommand(dockerCli *client.DockerCli) *cobra.Command {
flags.StringVar(&options.cpuSetMems, "cpuset-mems", "", "MEMs in which to allow execution (0-3, 0,1)")
flags.StringVar(&options.cgroupParent, "cgroup-parent", "", "Optional parent cgroup for the container")
flags.StringVar(&options.isolation, "isolation", "", "Container isolation technology")
flags.StringSliceVar(&options.labels, "label", []string{}, "Set metadata for an image")
flags.Var(&options.labels, "label", "Set metadata for an image")
flags.BoolVar(&options.noCache, "no-cache", false, "Do not use cache when building the image")
flags.BoolVar(&options.rm, "rm", true, "Remove intermediate containers after a successful build")
flags.BoolVar(&options.forceRm, "force-rm", false, "Always remove intermediate containers")
@ -264,7 +265,7 @@ func runBuild(dockerCli *client.DockerCli, options buildOptions) error {
Ulimits: options.ulimits.GetList(),
BuildArgs: runconfigopts.ConvertKVStringsToMap(options.buildArgs.GetAll()),
AuthConfigs: dockerCli.RetrieveAuthConfigs(),
Labels: runconfigopts.ConvertKVStringsToMap(options.labels),
Labels: runconfigopts.ConvertKVStringsToMap(options.labels.GetAll()),
}
response, err := dockerCli.Client().ImageBuild(ctx, body, buildOptions)

View file

@ -161,7 +161,11 @@ func (n *networkRouter) deleteNetwork(ctx context.Context, w http.ResponseWriter
return err
}
if _, err := n.clusterProvider.GetNetwork(vars["id"]); err == nil {
return n.clusterProvider.RemoveNetwork(vars["id"])
if err = n.clusterProvider.RemoveNetwork(vars["id"]); err != nil {
return err
}
w.WriteHeader(http.StatusNoContent)
return nil
}
if err := n.backend.DeleteNetwork(vars["id"]); err != nil {
return err

View file

@ -185,7 +185,7 @@ flags=(
KEYS
VETH BRIDGE BRIDGE_NETFILTER
NF_NAT_IPV4 IP_NF_FILTER IP_NF_TARGET_MASQUERADE
NETFILTER_XT_MATCH_{ADDRTYPE,CONNTRACK}
NETFILTER_XT_MATCH_{ADDRTYPE,CONNTRACK,IPVS}
NF_NAT NF_NAT_NEEDED
# required for bind-mounting /dev/mqueue into containers
@ -233,6 +233,8 @@ flags=(
NET_CLS_CGROUP $netprio
CFS_BANDWIDTH FAIR_GROUP_SCHED RT_GROUP_SCHED
IP_VS
IP_VS_NFCT
IP_VS_RR
)
check_flags "${flags[@]}"

View file

@ -4668,7 +4668,9 @@ Stop and remove the service `id`
**Example response**:
HTTP/1.1 200 No Content
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: text/plain; charset=utf-8
**Status codes**:

View file

@ -4704,7 +4704,9 @@ Stop and remove the service `id`
**Example response**:
HTTP/1.1 200 No Content
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: text/plain; charset=utf-8
**Status codes**:

View file

@ -10,13 +10,14 @@ daemonSupporting=(
# if we have our linux/amd64 version compiled, let's symlink it in
if [ -x "$DEST/../binary-daemon/dockerd-$VERSION" ]; then
mkdir -p "$DEST/linux/amd64"
arch=$(go env GOHOSTARCH)
mkdir -p "$DEST/linux/${arch}"
(
cd "$DEST/linux/amd64"
cd "$DEST/linux/${arch}"
ln -s ../../../binary-daemon/* ./
ln -s ../../../binary-client/* ./
)
echo "Created symlinks:" "$DEST/linux/amd64/"*
echo "Created symlinks:" "$DEST/linux/${arch}/"*
fi
for platform in $DOCKER_CROSSPLATFORMS; do

View file

@ -4,7 +4,8 @@ CROSS="$DEST/../cross"
set -e
if [ ! -d "$CROSS/linux/amd64" ]; then
arch=$(go env GOHOSTARCH)
if [ ! -d "$CROSS/linux/${arch}" ]; then
echo >&2 'error: binary and cross must be run before tgz'
false
fi

View file

@ -258,7 +258,7 @@ release_build() {
# Upload binaries and tgz files to S3
release_binaries() {
[ -e "bundles/$VERSION/cross/linux/amd64/docker-$VERSION" ] || {
[ "$(find bundles/$VERSION -path "bundles/$VERSION/cross/*/*/docker-$VERSION")" != "" ] || {
echo >&2 './hack/make.sh must be run before release_binaries'
exit 1
}

View file

@ -101,6 +101,7 @@ func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendly
clnt.unlock(containerID)
if err := clnt.backend.AttachStreams(processFriendlyName, *iopipe); err != nil {
clnt.lock(containerID)
return err
}
clnt.lock(containerID)

View file

@ -27,9 +27,9 @@ type Process struct {
Capabilities []string `json:"capabilities,omitempty"`
// Rlimits specifies rlimit options to apply to the process.
Rlimits []specs.Rlimit `json:"rlimits,omitempty"`
// ApparmorProfile specified the apparmor profile for the container.
// ApparmorProfile specifies the apparmor profile for the container.
ApparmorProfile *string `json:"apparmorProfile,omitempty"`
// SelinuxProcessLabel specifies the selinux context that the container process is run as.
// SelinuxLabel specifies the selinux context that the container process is run as.
SelinuxLabel *string `json:"selinuxLabel,omitempty"`
}