|
|
@@ -1,4 +1,5 @@
|
|
|
import os
|
|
|
+import logging
|
|
|
|
|
|
import docker
|
|
|
|
|
|
@@ -7,19 +8,26 @@ import git
|
|
|
DEFAULT_REPOSITORY = 'git://github.com/dotcloud/docker'
|
|
|
DEFAULT_BRANCH = 'library'
|
|
|
|
|
|
+logger = logging.getLogger(__name__)
|
|
|
+logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',
|
|
|
+ level='DEBUG')
|
|
|
+
|
|
|
|
|
|
def fetch_buildlist(repository=None, branch=None):
|
|
|
if repository is None:
|
|
|
repository = DEFAULT_REPOSITORY
|
|
|
if branch is None:
|
|
|
branch = DEFAULT_BRANCH
|
|
|
+
|
|
|
+ logger.info('Cloning docker repo from {0}, branch: {1}'.format(
|
|
|
+ repository, branch))
|
|
|
#FIXME: set destination folder and only pull latest changes instead of
|
|
|
# cloning the whole repo everytime
|
|
|
dst_folder = git.clone_branch(repository, branch)
|
|
|
for buildfile in os.listdir(os.path.join(dst_folder, 'library')):
|
|
|
f = open(os.path.join(dst_folder, 'library', buildfile))
|
|
|
for line in f:
|
|
|
- print buildfile, '--->', line
|
|
|
+ logger.debug('{0} ---> {1}'.format(buildfile, line))
|
|
|
args = line.split()
|
|
|
try:
|
|
|
#FIXME: delegate to workers instead?
|
|
|
@@ -36,21 +44,21 @@ def fetch_buildlist(repository=None, branch=None):
|
|
|
'please refer to the docs')
|
|
|
start_build(args[1], ref, buildfile, args[0])
|
|
|
except Exception as e:
|
|
|
- print '!!! ', str(e).strip()
|
|
|
+ logger.exception(e)
|
|
|
f.close()
|
|
|
|
|
|
|
|
|
def start_build(repository, ref, docker_repo, docker_tag=None):
|
|
|
- print '---> Cloning {0} (ref: {1})'.format(repository, ref)
|
|
|
+ logger.info('Cloning {0} (ref: {1})'.format(repository, ref))
|
|
|
dst_folder = git.clone(repository, ref)
|
|
|
if not 'Dockerfile' in os.listdir(dst_folder):
|
|
|
raise RuntimeError('Dockerfile not found in cloned repository')
|
|
|
f = open(os.path.join(dst_folder, 'Dockerfile'))
|
|
|
- print '---> Building using dockerfile...'
|
|
|
+ logger.info('Building using dockerfile...')
|
|
|
#img_id, logs = docker.build_context(dst_folder)
|
|
|
- print '--> Committing to library/{0}:{1}'.format(docker_repo,
|
|
|
- docker_tag or 'latest')
|
|
|
+ logger.info('Committing to library/{0}:{1}'.format(docker_repo,
|
|
|
+ docker_tag or 'latest'))
|
|
|
#docker.commit(img_id, 'library/' + docker_repo, docker_tag)
|
|
|
- print '---> Pushing result to the main registry'
|
|
|
+ logger.info('Pushing result to the main registry')
|
|
|
#docker.push('library/' + docker_repo)
|
|
|
f.close()
|