mirror of https://github.com/docker/compose.git
Detailed error message when daemon version is too old.
Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
c7687592ff
commit
3eac70a9d3
|
@ -19,6 +19,7 @@ from ..config import config
|
||||||
from ..config import ConfigurationError
|
from ..config import ConfigurationError
|
||||||
from ..config import parse_environment
|
from ..config import parse_environment
|
||||||
from ..config.serialize import serialize_config
|
from ..config.serialize import serialize_config
|
||||||
|
from ..const import API_VERSION_TO_ENGINE_VERSION
|
||||||
from ..const import DEFAULT_TIMEOUT
|
from ..const import DEFAULT_TIMEOUT
|
||||||
from ..const import HTTP_TIMEOUT
|
from ..const import HTTP_TIMEOUT
|
||||||
from ..const import IS_WINDOWS_PLATFORM
|
from ..const import IS_WINDOWS_PLATFORM
|
||||||
|
@ -64,7 +65,7 @@ def main():
|
||||||
log.error("No such command: %s\n\n%s", e.command, commands)
|
log.error("No such command: %s\n\n%s", e.command, commands)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
except APIError as e:
|
except APIError as e:
|
||||||
log.error(e.explanation)
|
log_api_error(e)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
except BuildError as e:
|
except BuildError as e:
|
||||||
log.error("Service '%s' failed to build: %s" % (e.service.name, e.reason))
|
log.error("Service '%s' failed to build: %s" % (e.service.name, e.reason))
|
||||||
|
@ -84,6 +85,22 @@ def main():
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def log_api_error(e):
|
||||||
|
if 'client is newer than server' in e.explanation:
|
||||||
|
# we need JSON formatted errors. In the meantime...
|
||||||
|
# TODO: fix this by refactoring project dispatch
|
||||||
|
# http://github.com/docker/compose/pull/2832#commitcomment-15923800
|
||||||
|
client_version = e.explanation.split('client API version: ')[1].split(',')[0]
|
||||||
|
log.error(
|
||||||
|
"The engine version is lesser than the minimum required by "
|
||||||
|
"compose. Your current project requires a Docker Engine of "
|
||||||
|
"version {version} or superior.".format(
|
||||||
|
version=API_VERSION_TO_ENGINE_VERSION[client_version]
|
||||||
|
))
|
||||||
|
else:
|
||||||
|
log.error(e.explanation)
|
||||||
|
|
||||||
|
|
||||||
def setup_logging():
|
def setup_logging():
|
||||||
root_logger = logging.getLogger()
|
root_logger = logging.getLogger()
|
||||||
root_logger.addHandler(console_handler)
|
root_logger.addHandler(console_handler)
|
||||||
|
|
|
@ -22,3 +22,8 @@ API_VERSIONS = {
|
||||||
COMPOSEFILE_V1: '1.21',
|
COMPOSEFILE_V1: '1.21',
|
||||||
COMPOSEFILE_V2_0: '1.22',
|
COMPOSEFILE_V2_0: '1.22',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
API_VERSION_TO_ENGINE_VERSION = {
|
||||||
|
API_VERSIONS[COMPOSEFILE_V1]: '1.9.0',
|
||||||
|
API_VERSIONS[COMPOSEFILE_V2_0]: '1.10.0'
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue