Exit gracefully when requests encounter a ReadTimeout exception.

Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
Joffrey F 2015-09-02 11:53:37 -07:00
parent c63ae64ca6
commit b54b932b54
2 changed files with 8 additions and 1 deletions

View File

@ -34,5 +34,5 @@ def docker_client():
ca_cert=ca_cert,
)
timeout = int(os.environ.get('DOCKER_CLIENT_TIMEOUT', 60))
timeout = int(os.environ.get('COMPOSE_HTTP_TIMEOUT', os.environ.get('DOCKER_CLIENT_TIMEOUT', 60)))
return Client(base_url=base_url, tls=tls_config, version=api_version, timeout=timeout)

View File

@ -10,6 +10,7 @@ from operator import attrgetter
import dockerpty
from docker.errors import APIError
from requests.exceptions import ReadTimeout
from .. import __version__
from .. import legacy
@ -65,6 +66,12 @@ def main():
except NeedsBuildError as e:
log.error("Service '%s' needs to be built, but --no-build was passed." % e.service.name)
sys.exit(1)
except ReadTimeout as e:
log.error(
"HTTP request took too long to complete. Retry with --verbose to obtain debug information.\n"
"If you encounter this issue regularly because of slow network conditions, consider setting "
"COMPOSE_HTTP_TIMEOUT to a higher value."
)
def setup_logging():