1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #38788 from AkihiroSuda/bind-nonrecursive-swarm

service: support --mount type=bind,bind-nonrecursive
This commit is contained in:
Brian Goff 2020-03-13 15:42:46 -07:00 committed by GitHub
commit 714cba6740
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 5 deletions

View file

@ -79,6 +79,7 @@ func containerSpecFromGRPC(c *swarmapi.ContainerSpec) *types.ContainerSpec {
if m.BindOptions != nil { if m.BindOptions != nil {
mount.BindOptions = &mounttypes.BindOptions{ mount.BindOptions = &mounttypes.BindOptions{
Propagation: mounttypes.Propagation(strings.ToLower(swarmapi.Mount_BindOptions_MountPropagation_name[int32(m.BindOptions.Propagation)])), Propagation: mounttypes.Propagation(strings.ToLower(swarmapi.Mount_BindOptions_MountPropagation_name[int32(m.BindOptions.Propagation)])),
NonRecursive: m.BindOptions.NonRecursive,
} }
} }
@ -331,9 +332,11 @@ func containerToGRPC(c *types.ContainerSpec) (*swarmapi.ContainerSpec, error) {
} }
if m.BindOptions.NonRecursive { if m.BindOptions.NonRecursive {
// TODO(AkihiroSuda): NonRecursive is unsupported for Swarm-mode now because of mutual vendoring if mount.BindOptions == nil {
// across moby and swarmkit. Will be available soon after the moby PR gets merged. // the propagation defaults to rprivate
return nil, fmt.Errorf("invalid NonRecursive: %q", m.BindOptions.Propagation) mount.BindOptions = &swarmapi.Mount_BindOptions{}
}
mount.BindOptions.NonRecursive = m.BindOptions.NonRecursive
} }
} }

View file

@ -281,7 +281,9 @@ func convertMount(m api.Mount) enginemount.Mount {
} }
if m.BindOptions != nil { if m.BindOptions != nil {
mount.BindOptions = &enginemount.BindOptions{} mount.BindOptions = &enginemount.BindOptions{
NonRecursive: m.BindOptions.NonRecursive,
}
switch m.BindOptions.Propagation { switch m.BindOptions.Propagation {
case api.MountPropagationRPrivate: case api.MountPropagationRPrivate:
mount.BindOptions.Propagation = enginemount.PropagationRPrivate mount.BindOptions.Propagation = enginemount.PropagationRPrivate

View file

@ -17,6 +17,7 @@ keywords: "API, Docker, rcli, REST, documentation"
[Docker Engine API v1.41](https://docs.docker.com/engine/api/v1.41/) documentation [Docker Engine API v1.41](https://docs.docker.com/engine/api/v1.41/) documentation
* `POST /services/create` and `POST /services/{id}/update` now supports `BindOptions.NonRecursive`.
* The `ClusterStore` and `ClusterAdvertise` fields in `GET /info` are deprecated * The `ClusterStore` and `ClusterAdvertise` fields in `GET /info` are deprecated
and are now omitted if they contain an empty value. This change is not versioned, and are now omitted if they contain an empty value. This change is not versioned,
and affects all API versions if the daemon has this patch. and affects all API versions if the daemon has this patch.