Skip to content

Commit 3950460

Browse files
committed
Add support for volume Subpath option
Signed-off-by: Nicolas De Loof <[email protected]>
1 parent 3b541b0 commit 3950460

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

pkg/compose/create.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1136,7 +1136,8 @@ func buildVolumeOptions(vol *types.ServiceVolumeVolume) *mount.VolumeOptions {
11361136
return nil
11371137
}
11381138
return &mount.VolumeOptions{
1139-
NoCopy: vol.NoCopy,
1139+
NoCopy: vol.NoCopy,
1140+
Subpath: vol.Subpath,
11401141
// Labels: , // FIXME missing from model ?
11411142
// DriverConfig: , // FIXME missing from model ?
11421143
}

pkg/compose/create_test.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,14 @@ func TestBuildContainerMountOptions(t *testing.T) {
113113
Type: composetypes.VolumeTypeVolume,
114114
Target: "/var/myvolume2",
115115
},
116+
{
117+
Type: composetypes.VolumeTypeVolume,
118+
Source: "myVolume3",
119+
Target: "/var/myvolume3",
120+
Volume: &composetypes.ServiceVolumeVolume{
121+
Subpath: "etc",
122+
},
123+
},
116124
{
117125
Type: composetypes.VolumeTypeNamedPipe,
118126
Source: "\\\\.\\pipe\\docker_engine_windows",
@@ -149,20 +157,24 @@ func TestBuildContainerMountOptions(t *testing.T) {
149157
return mounts[i].Target < mounts[j].Target
150158
})
151159
assert.NilError(t, err)
152-
assert.Assert(t, len(mounts) == 3)
160+
assert.Assert(t, len(mounts) == 4)
153161
assert.Equal(t, mounts[0].Target, "/var/myvolume1")
154162
assert.Equal(t, mounts[1].Target, "/var/myvolume2")
155-
assert.Equal(t, mounts[2].Target, "\\\\.\\pipe\\docker_engine")
163+
assert.Equal(t, mounts[2].Target, "/var/myvolume3")
164+
assert.Equal(t, mounts[2].VolumeOptions.Subpath, "etc")
165+
assert.Equal(t, mounts[3].Target, "\\\\.\\pipe\\docker_engine")
156166

157167
mounts, err = buildContainerMountOptions(project, project.Services["myService"], moby.ImageInspect{}, inherit)
158168
sort.Slice(mounts, func(i, j int) bool {
159169
return mounts[i].Target < mounts[j].Target
160170
})
161171
assert.NilError(t, err)
162-
assert.Assert(t, len(mounts) == 3)
172+
assert.Assert(t, len(mounts) == 4)
163173
assert.Equal(t, mounts[0].Target, "/var/myvolume1")
164174
assert.Equal(t, mounts[1].Target, "/var/myvolume2")
165-
assert.Equal(t, mounts[2].Target, "\\\\.\\pipe\\docker_engine")
175+
assert.Equal(t, mounts[2].Target, "/var/myvolume3")
176+
assert.Equal(t, mounts[2].VolumeOptions.Subpath, "etc")
177+
assert.Equal(t, mounts[3].Target, "\\\\.\\pipe\\docker_engine")
166178
}
167179

168180
func TestDefaultNetworkSettings(t *testing.T) {

0 commit comments

Comments
 (0)