def factory(data_folder, port='8080', source='debian8', folder=''): drp = DIM.DockerRunParameters(hostname='navitia', volumes=(data_folder + ':/srv/ed/data', ), ports=(port + ':80', )) df = DIM.DockerFile(os.path.join('ssh', 'unsecure_key.pub'), os.path.join('factories', CONTAINER_NAME, 'supervisord.conf'), os.path.join('factories', source, 'Dockerfile'), parameters=drp, add_ons=('apache', 'user', 'french', 'postgres', 'sshserver', 'rabbitmq', 'redis', 'supervisor'), template_context=dict(user='******', password='******', home_ssh='/home/navitia/.ssh')) dim = DIM.DockerImageManager(df, image_name=IMAGE_NAME, parameters=drp) dim.build(fail_if_exists=False) dcm = dim.create_container(CONTAINER_NAME, start=True) ffd = FFD.FabricForDocker(dcm, user='******', platform='simple', distrib=source) time.sleep(5) with utils.chdir(folder): ffd.execute('deploy_from_scratch')
def factory(navitia_packages='', port='', artemis_source='', artemis_data='', commit=False, remove=False, set_version='', tag=False): if commit: if set_version.lower() in ('true', 'yes'): version = utils.get_packet_version(navitia_packages) elif not set_version or set_version.lower() in ('false', 'no'): version = None else: version = set_version image_name = "{}:{}".format(FINAL_IMAGE_NAME, version) if DIM.DockerImageManager('', image_name=image_name).exists: print("image {} already exists".format(image_name)) return 1 drp = DIM.DockerRunParameters( hostname=CONTAINER_NAME, volumes=(artemis_data + ':/artemis/data', artemis_source + ':/artemis/source'), ports=(port + ':80', '9002:9001'), links=(POSTGIS_LINK, )) ffd = FFD.FabricForDocker(None, user='******', platform='artemis', distrib='debian8') df = DIM.DockerFile( os.path.join('factories', CONTAINER_NAME, 'supervisord.conf.jinja'), os.path.join('factories', CONTAINER_NAME, 'kraken_service_wrapper'), Dockerfile=Dockerfile, parameters=drp, template_context=dict(krakens=list(ffd.get_env.instances))) dim = DIM.DockerImageManager(df, parameters=drp) try: dim.build() dcm = dim.create_container(CONTAINER_NAME, start=True, if_exist='remove') ffd.set_platform(dcm) time.sleep(5) with utils.chdir(navitia_packages): ffd.execute('deploy_from_scratch') if commit: dcm.stop() if version: dcm.commit(FINAL_IMAGE_NAME, version) if tag: dcm.tag(FINAL_IMAGE_NAME, version) else: dcm.commit(FINAL_IMAGE_NAME) print("Run this image with:") print(dim.print_command(FINAL_IMAGE_NAME, CONTAINER_NAME)) if remove: dcm.remove_container() finally: if remove: dim.remove_image()
def factory(version, commit=False, port='80'): drp = DIM.DockerRunParameters( hostname='kirin', ports=(port + ':9090',) ) df = DIM.DockerFile( os.path.join(KRIRIN_ROOT, 'Dockerfile'), parameters=drp ) dim = DIM.DockerImageManager(df, image_name=IMAGE_NAME, parameters=drp) dim.build()
def factory(source='debian8'): df = DIM.DockerFile(os.path.join('factories', source, 'Dockerfile'), os.path.join('factories', source, 'supervisord.conf'), os.path.join('ssh', 'unsecure_key.pub'), add_ons=('apache', 'user', 'french', 'postgres', 'sshserver', 'rabbitmq', 'redis', 'supervisor'), template_context=dict(user='******', password='******', home_ssh='/home/navitia/.ssh')) dim = DIM.DockerImageManager(df, image_name=IMAGE_NAME) dim.build()
def factory(navitia_packages='', data_folder='', port='', commit=False, remove=False, set_version=''): if commit: if set_version.lower() in ('true', 'yes'): version = utils.get_packet_version(navitia_packages) elif not set_version or set_version.lower() in ('false', 'no'): version = None else: version = set_version image_name = "{}:{}".format(FINAL_IMAGE_NAME, version) if DIM.DockerImageManager('', image_name=image_name).exists: print("image {} already exists".format(image_name)) return 1 drp = DIM.DockerRunParameters(hostname='navitia', volumes=(data_folder + ':/srv/ed/data', ), ports=(port + ':80', )) df = DIM.DockerFile(os.path.join('factories', CONTAINER_NAME, 'supervisord.conf'), Dockerfile=Dockerfile, parameters=drp) dim = DIM.DockerImageManager(df, parameters=drp) try: dim.build() dcm = dim.create_container(CONTAINER_NAME, start=True, if_exist='remove') ffd = FFD.FabricForDocker(dcm, user='******', platform='simple', distrib='debian8') time.sleep(5) with utils.chdir(navitia_packages): ffd.execute('deploy_from_scratch') if commit: dcm.stop() if version: dcm.commit(FINAL_IMAGE_NAME, version) else: dcm.commit(FINAL_IMAGE_NAME) if remove: dcm.remove_container() finally: if remove: dim.remove_image()
def factory(cmd, container='navitia_simple', folder='', distrib='debian8'): dcm = DIM.DockerContainerManager(container_name=container) ffd = FFD.FabricForDocker(dcm, user='******', platform='simple', distrib=distrib) dcm.start() with utils.chdir(folder): ffd.execute(cmd)
def factory(commit=False): drp = DIM.DockerRunParameters(ports=('5432:5432', )) df = DIM.DockerFile( 'factories/postgres/Dockerfile', 'factories/postgres/supervisord.conf', parameters=drp, add_ons=('supervisor', ), ) dim = DIM.DockerImageManager(df, image_name=IMAGE_NAME, parameters=drp) dim.build() dcm = dim.create_container(CONTAINER_NAME, start=True, if_exist='remove') time.sleep(3) dcm.exec_container( 'sudo -u postgres psql -c "CREATE USER cities PASSWORD \'cities\'"') dcm.exec_container('sudo -u postgres createdb cities') if commit: dcm.stop() dcm.commit(IMAGE_NAME) dcm.remove_container()
def factory(commit=False): df = DIM.DockerFile( 'factories/postgis/Dockerfile', 'factories/postgis/supervisord.conf', 'ssh/unsecure_key.pub', add_ons=('sshserver', 'supervisor', ), template_context=dict(home_ssh='/root/.ssh') ) dim = DIM.DockerImageManager(df, image_name=IMAGE_NAME) dim.build(fail_if_exists=False) dcm = dim.create_container(CONTAINER_NAME, start=True, if_exist='remove') time.sleep(3) dcm.exec_container('sudo -u postgres psql -c "CREATE USER cities PASSWORD \'cities\'"') dcm.exec_container('sudo -u postgres createdb cities --owner=cities --encoding=UTF8 --template=template0') dcm.exec_container('sudo -u postgres psql -c "CREATE EXTENSION postgis" --dbname=cities') dcm.exec_container('sudo -u postgres psql -c "CREATE USER kirin PASSWORD \'kirin\'"') dcm.exec_container('sudo -u postgres createdb kirin --owner=kirin --encoding=UTF8 --template=template0') if commit: dcm.stop() dcm.commit(IMAGE_NAME) dcm.remove_container()