Permalink
Browse files

Merge pull request #5455 from docker/5450-bind-relative-paths

Expand mount source for bind types
  • Loading branch information...
shin- committed Dec 7, 2017
2 parents 38ae7ae + 5c0a064 commit e0eaf4bca437fe8d5bddcd5e86f0f1f407eb6b00
Showing with 24 additions and 1 deletion.
  1. +1 −1 compose/config/config.py
  2. +23 −0 tests/unit/config/config_test.py
View
@@ -1153,7 +1153,7 @@ def resolve_volume_paths(working_dir, service_dict):
def resolve_volume_path(working_dir, volume):
if isinstance(volume, dict):
if volume.get('source', '').startswith('.') and volume['type'] == 'mount':
if volume.get('source', '').startswith('.') and volume['type'] == 'bind':
volume['source'] = expand_path(working_dir, volume['source'])
return volume
@@ -1304,6 +1304,29 @@ def test_volumes_long_syntax(self):
assert npipe_mount.target == '/named_pipe'
assert not npipe_mount.is_named_volume
def test_load_bind_mount_relative_path(self):
expected_source = 'C:\\tmp\\web' if IS_WINDOWS_PLATFORM else '/tmp/web'
base_file = config.ConfigFile(
'base.yaml', {
'version': '3.4',
'services': {
'web': {
'image': 'busybox:latest',
'volumes': [
{'type': 'bind', 'source': './web', 'target': '/web'},
],
},
},
},
)
details = config.ConfigDetails('/tmp', [base_file])
config_data = config.load(details)
mount = config_data.services[0].get('volumes')[0]
assert mount.target == '/web'
assert mount.type == 'bind'
assert mount.source == expected_source
def test_config_valid_service_names(self):
for valid_name in ['_', '-', '.__.', '_what-up.', 'what_.up----', 'whatup']:
services = config.load(

0 comments on commit e0eaf4b

Please sign in to comment.