mirror of
https://github.com/docker/docs.git
synced 2026-04-05 18:58:55 +07:00
Volume mounts need to use "Binds" API field
Swarm was putting volume type mounts into the container config's "Volumes" field, but really these need to go into "Binds". "Volumes" is only for normal "-v /foo" volumes, not named volumes or anything else. Signed-off-by: Brian Goff <cpuguy83@gmail.com> (cherry picked from commit 2bc2165cbf3e949921d1659f09841b5f008f590d) Signed-off-by: Tibor Vass <tibor@docker.com>
This commit is contained in:
@@ -91,13 +91,12 @@ func (c *containerConfig) image() string {
|
||||
func (c *containerConfig) volumes() map[string]struct{} {
|
||||
r := make(map[string]struct{})
|
||||
|
||||
for _, mount := range c.spec().Mounts {
|
||||
for _, m := range c.spec().Mounts {
|
||||
// pick off all the volume mounts.
|
||||
if mount.Type != api.MountTypeVolume {
|
||||
if m.Type != api.MountTypeVolume || m.Source != "" {
|
||||
continue
|
||||
}
|
||||
|
||||
r[fmt.Sprintf("%s:%s", mount.Target, getMountMask(&mount))] = struct{}{}
|
||||
r[m.Target] = struct{}{}
|
||||
}
|
||||
|
||||
return r
|
||||
@@ -165,7 +164,7 @@ func (c *containerConfig) bindMounts() []string {
|
||||
|
||||
for _, val := range c.spec().Mounts {
|
||||
mask := getMountMask(&val)
|
||||
if val.Type == api.MountTypeBind {
|
||||
if val.Type == api.MountTypeBind || (val.Type == api.MountTypeVolume && val.Source != "") {
|
||||
r = append(r, fmt.Sprintf("%s:%s:%s", val.Source, val.Target, mask))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user