mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Fix create volume /etc cover /etc/{hosts,resolv.conf,hostname}
Signed-off-by: Lei Jitang <leijitang@huawei.com>
This commit is contained in:
parent
f4749acad4
commit
fa228d8cbc
1 changed files with 17 additions and 15 deletions
|
@ -316,8 +316,23 @@ func validMountMode(mode string) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (container *Container) setupMounts() error {
|
func (container *Container) setupMounts() error {
|
||||||
mounts := []execdriver.Mount{
|
mounts := []execdriver.Mount{}
|
||||||
{Source: container.ResolvConfPath, Destination: "/etc/resolv.conf", Writable: true, Private: true},
|
|
||||||
|
// Mount user specified volumes
|
||||||
|
// Note, these are not private because you may want propagation of (un)mounts from host
|
||||||
|
// volumes. For instance if you use -v /usr:/usr and the host later mounts /usr/share you
|
||||||
|
// want this new mount in the container
|
||||||
|
// These mounts must be ordered based on the length of the path that it is being mounted to (lexicographic)
|
||||||
|
for _, path := range container.sortedVolumeMounts() {
|
||||||
|
mounts = append(mounts, execdriver.Mount{
|
||||||
|
Source: container.Volumes[path],
|
||||||
|
Destination: path,
|
||||||
|
Writable: container.VolumesRW[path],
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if container.ResolvConfPath != "" {
|
||||||
|
mounts = append(mounts, execdriver.Mount{Source: container.ResolvConfPath, Destination: "/etc/resolv.conf", Writable: true, Private: true})
|
||||||
}
|
}
|
||||||
|
|
||||||
if container.HostnamePath != "" {
|
if container.HostnamePath != "" {
|
||||||
|
@ -334,19 +349,6 @@ func (container *Container) setupMounts() error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mount user specified volumes
|
|
||||||
// Note, these are not private because you may want propagation of (un)mounts from host
|
|
||||||
// volumes. For instance if you use -v /usr:/usr and the host later mounts /usr/share you
|
|
||||||
// want this new mount in the container
|
|
||||||
// These mounts must be ordered based on the length of the path that it is being mounted to (lexicographic)
|
|
||||||
for _, path := range container.sortedVolumeMounts() {
|
|
||||||
mounts = append(mounts, execdriver.Mount{
|
|
||||||
Source: container.Volumes[path],
|
|
||||||
Destination: path,
|
|
||||||
Writable: container.VolumesRW[path],
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
container.command.Mounts = mounts
|
container.command.Mounts = mounts
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue