Skip to content
This repository has been archived by the owner on Oct 13, 2023. It is now read-only.

Commit

Permalink
Fix relabeling local volume source dir
Browse files Browse the repository at this point in the history
In case a volume is specified via Mounts API, and SELinux is enabled,
the following error happens on container start:

> $ docker volume create testvol
> $ docker run --rm --mount source=testvol,target=/tmp busybox true
> docker: Error response from daemon: error setting label on mount
> source '': no such file or directory.

The functionality to relabel the source of a local mount specified via
Mounts API was introduced in commit 5bbf5cc and later broken by commit
e4b6adc, which removed setting mp.Source field.

With the current data structures, the host dir is already available in
v.Mountpoint, so let's just use it.

Fixes: e4b6adc
Signed-off-by: Kir Kolyshkin <[email protected]>
Upstream-commit: 4032b6778df39f53fda0e6e54f0256c9a3b1d618
Component: engine
  • Loading branch information
kolyshkin committed Aug 31, 2018
1 parent 46e2c8c commit 7a491b2
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions components/engine/daemon/volumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,8 @@ func (daemon *Daemon) registerMountPoints(container *container.Container, hostCo
mp.Name = v.Name
mp.Driver = v.Driver

// need to selinux-relabel local mounts
mp.Source = v.Mountpoint
if mp.Driver == volume.DefaultDriverName {
setBindModeIfNull(mp)
}
Expand Down

0 comments on commit 7a491b2

Please sign in to comment.