From 7c08b582ded9b74cf8ec62d8996b7f8d80c83402 Mon Sep 17 00:00:00 2001 From: Mehdi Abaakouk Date: Mon, 8 Sep 2014 07:04:33 +0200 Subject: [PATCH] Checks that docker is installed The current error when docker is missing is not very helpful: ERROR: Operation failed, aborting dox. The debug one doesn't help more, this change start 'docker version' command earlier to have a clear error message. Change-Id: I1e6ac247b0a619915600f604d5f316d5f053e8c1 --- dox/cmd.py | 3 +++ dox/runner.py | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/dox/cmd.py b/dox/cmd.py index cadde36..3aed150 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)