diff --git a/dox/cmd.py b/dox/cmd.py index bdf81a4..ba0b873 100644 --- a/dox/cmd.py +++ b/dox/cmd.py @@ -15,6 +15,7 @@ import argparse import logging +import sys import dox.commands import dox.config.cmdline @@ -75,6 +76,8 @@ def main(): def run_dox(args): + if not dox.runner.Runner(args).is_docker_installed(): + sys.exit(1) # Get Image image = args.image diff --git a/dox/runner.py b/dox/runner.py index b26a268..2264648 100644 --- a/dox/runner.py +++ b/dox/runner.py @@ -37,6 +37,18 @@ class Runner(object): self.base_image_name = 'dox_%s_base' % self.project self.test_image_name = 'dox_%s_test' % self.project + def is_docker_installed(self): + try: + self._docker_cmd("version") + except OSError as e: + msg = 'docker does not seem installed' + if e.errno == 2 and not self.args.debug: + logger.error(msg) + else: + logger.exception(msg) + return False + return True + def _docker_build(self, image, image_dir='.'): logger.info('Building image %s' % image) self._docker_cmd('build', '-t', image, image_dir)