Handle volume driver change error in config.
Assume version=1 if file is empty in get_config_version Empty files are invalid anyway, so this simplifies the algorithm somewhat. https://github.com/docker/compose/pull/2421#discussion_r47223144 Don't leak version considerations in interpolation/service validation Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
f3a9533dc0
commit
a7689f3da8
6 changed files with 94 additions and 21 deletions
|
|
@ -236,6 +236,18 @@ class Project(object):
|
|||
raise ConfigurationError(
|
||||
'Volume %s specifies nonexistent driver %s' % (volume.name, volume.driver)
|
||||
)
|
||||
except APIError as e:
|
||||
if 'Choose a different volume name' in str(e):
|
||||
raise ConfigurationError(
|
||||
'Configuration for volume {0} specifies driver {1}, but '
|
||||
'a volume with the same name uses a different driver '
|
||||
'({3}). If you wish to use the new configuration, please '
|
||||
'remove the existing volume "{2}" first:\n'
|
||||
'$ docker volume rm {2}'.format(
|
||||
volume.name, volume.driver, volume.full_name,
|
||||
volume.inspect()['Driver']
|
||||
)
|
||||
)
|
||||
|
||||
def restart(self, service_names=None, **options):
|
||||
containers = self.containers(service_names, stopped=True)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue