Add support for volume consistency in compose format.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin 2017-04-06 11:37:55 -04:00
parent 12702bdc81
commit 545ec64de7
6 changed files with 19 additions and 11 deletions

View File

@ -28,10 +28,11 @@ func convertVolumeToMount(
namespace Namespace, namespace Namespace,
) (mount.Mount, error) { ) (mount.Mount, error) {
result := mount.Mount{ result := mount.Mount{
Type: mount.Type(volume.Type), Type: mount.Type(volume.Type),
Source: volume.Source, Source: volume.Source,
Target: volume.Target, Target: volume.Target,
ReadOnly: volume.ReadOnly, ReadOnly: volume.ReadOnly,
Consistency: mount.Consistency(volume.Consistency),
} }
// Anonymous volumes // Anonymous volumes

View File

@ -220,6 +220,10 @@ services:
- ~/configs:/etc/configs/:ro - ~/configs:/etc/configs/:ro
# Named volume # Named volume
- datavolume:/var/lib/mysql - datavolume:/var/lib/mysql
- type: bind
source: ./opt
target: /opt
consistency: cached
working_dir: /code working_dir: /code

View File

@ -910,6 +910,7 @@ func TestFullExample(t *testing.T) {
{Source: workingDir + "/static", Target: "/var/www/html", Type: "bind"}, {Source: workingDir + "/static", Target: "/var/www/html", Type: "bind"},
{Source: homeDir + "/configs", Target: "/etc/configs/", Type: "bind", ReadOnly: true}, {Source: homeDir + "/configs", Target: "/etc/configs/", Type: "bind", ReadOnly: true},
{Source: "datavolume", Target: "/var/lib/mysql", Type: "volume"}, {Source: "datavolume", Target: "/var/lib/mysql", Type: "volume"},
{Source: workingDir + "/opt", Target: "/opt", Consistency: "cached", Type: "bind"},
}, },
WorkingDir: "/code", WorkingDir: "/code",
} }

File diff suppressed because one or more lines are too long

View File

@ -249,6 +249,7 @@
"source": {"type": "string"}, "source": {"type": "string"},
"target": {"type": "string"}, "target": {"type": "string"},
"read_only": {"type": "boolean"}, "read_only": {"type": "boolean"},
"consistency": {"type": "string"},
"bind": { "bind": {
"type": "object", "type": "object",
"properties": { "properties": {

View File

@ -229,12 +229,13 @@ type ServicePortConfig struct {
// ServiceVolumeConfig are references to a volume used by a service // ServiceVolumeConfig are references to a volume used by a service
type ServiceVolumeConfig struct { type ServiceVolumeConfig struct {
Type string Type string
Source string Source string
Target string Target string
ReadOnly bool `mapstructure:"read_only"` ReadOnly bool `mapstructure:"read_only"`
Bind *ServiceVolumeBind Consistency string
Volume *ServiceVolumeVolume Bind *ServiceVolumeBind
Volume *ServiceVolumeVolume
} }
// ServiceVolumeBind are options for a service volume of type bind // ServiceVolumeBind are options for a service volume of type bind