diff --git a/bootstrapvz/plugins/docker_daemon/manifest-schema.yml b/bootstrapvz/plugins/docker_daemon/manifest-schema.yml index 0746d90..b98a28d 100644 --- a/bootstrapvz/plugins/docker_daemon/manifest-schema.yml +++ b/bootstrapvz/plugins/docker_daemon/manifest-schema.yml @@ -3,6 +3,15 @@ $schema: http://json-schema.org/draft-04/schema# title: Install Docker plugin manifest type: object properties: + plugins: + type: object + properties: + docker_daemon: + type: object + properties: + version: + pattern: '^\d\.\d{1,2}\.\d$' + type: string system: type: object properties: diff --git a/bootstrapvz/plugins/docker_daemon/tasks.py b/bootstrapvz/plugins/docker_daemon/tasks.py index e82aad2..a27a2ca 100644 --- a/bootstrapvz/plugins/docker_daemon/tasks.py +++ b/bootstrapvz/plugins/docker_daemon/tasks.py @@ -25,13 +25,18 @@ class AddDockerDeps(Task): class AddDockerBinary(Task): description = 'Add docker binary' phase = phases.system_modification - DOCKER_URL = 'https://get.docker.io/builds/Linux/x86_64/docker-latest' @classmethod def run(cls, info): - import urllib + from bootstrapvz.common.tools import log_check_call + docker_version = info.manifest.plugins['docker_daemon'].get('version', False) + docker_url = 'https://get.docker.io/builds/Linux/x86_64/docker-' + if docker_version: + docker_url += docker_version + else: + docker_url += 'latest' bin_docker = os.path.join(info.root, 'usr/bin/docker') - urllib.urlretrieve(cls.DOCKER_URL, bin_docker) + log_check_call(['wget', '-O', bin_docker, docker_url]) os.chmod(bin_docker, 0755)