docker_client.py 775 B

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