docker_client.py 854 B

123456789101112131415161718192021222324252627282930
  1. from __future__ import absolute_import
  2. from __future__ import unicode_literals
  3. import logging
  4. import os
  5. from docker import Client
  6. from docker.utils import kwargs_from_env
  7. from ..const import HTTP_TIMEOUT
  8. log = logging.getLogger(__name__)
  9. DEFAULT_API_VERSION = '1.21'
  10. def docker_client(version=None):
  11. """
  12. Returns a docker-py client configured using environment variables
  13. according to the same logic as the official Docker client.
  14. """
  15. if 'DOCKER_CLIENT_TIMEOUT' in os.environ:
  16. log.warn('The DOCKER_CLIENT_TIMEOUT environment variable is deprecated. Please use COMPOSE_HTTP_TIMEOUT instead.')
  17. kwargs = kwargs_from_env(assert_hostname=False)
  18. kwargs['version'] = version or os.environ.get(
  19. 'COMPOSE_API_VERSION',
  20. DEFAULT_API_VERSION)
  21. kwargs['timeout'] = HTTP_TIMEOUT
  22. return Client(**kwargs)