diff --git a/docker_dev_start.py b/docker_dev_start.py index 011e8b0e662225820cfd93fa97ef93347c56077f_ZG9ja2VyX2Rldl9zdGFydC5weQ==..27f4b767f6c0612e5aed7b26679f859588f67ad2_ZG9ja2VyX2Rldl9zdGFydC5weQ== 100755 --- a/docker_dev_start.py +++ b/docker_dev_start.py @@ -32,5 +32,5 @@ _logger = logging.getLogger(__name__) -__version__ = '1.1.12' +__version__ = '1.1.13' __date__ = '2017-08-11' @@ -36,5 +36,5 @@ __date__ = '2017-08-11' -__updated__ = '2019-06-17' +__updated__ = '2019-07-15' def which(program): @@ -289,6 +289,24 @@ default=os.path.join('conf', 'dev', 'odoo.conf'), ) + py3o_group = parser.add_mutually_exclusive_group() + py3o_group.add_argument( + '--start-py3o', + help="start py3o docker [default: %(default)s]", + action='store_const', + default=None, + const=1, + dest='start_py3o', + ) + py3o_group.add_argument( + '--no-start-py3o', + help="do not start py3o docker [default: %(default)s]", + action='store_const', + default=None, + const=-1, + dest='start_py3o', + ) + # TODO detect that user is member of docker group # TODO add a way to add options to docker @@ -356,6 +374,16 @@ c.has_section('odoo_scripts') and c.has_option('odoo_scripts', 'module_list') and c.get('odoo_scripts', 'module_list').split()) or [] + if nmspc.start_py3o: + _logger.debug("Command line start py3o %d", nmspc.start_py3o) + start_py3o_stack = nmspc.start_py3o == 1 + else: + start_py3o_stack = ( + c.has_section('odoo_scripts') and + c.has_option('odoo_scripts', 'start_py3o') and + c.get('odoo_scripts', 'start_py3o') in ('yes', 'true')) + _logger.debug("No command line start py3o %d", start_py3o_stack) + _logger.debug("Docker image: %s", image) # detect if docker image already exists docker_client = docker_api(base_url='unix://var/run/docker.sock') @@ -567,8 +595,6 @@ # volume = createVolume(docker_client, volume_name) binds.append('{}:{}'.format(volume_name, extra_volume)) - start_py3o_stack = 'report_py3o_fusion_server' in module_list - if start_py3o_stack: start_py3o(docker_client) options.append('--add-host') @@ -814,58 +840,9 @@ def start_py3o( docker_client, host_fusion_port=8765, stop_at_exit=True, ): - ooo_repository = 'xcgd/libreoffice' - ooo_version = '4.2.8' - ooo_name = 'oooserver' - ooo_image = '{}:{}'.format(ooo_repository, ooo_version) - try: - docker_client.pull(repository=ooo_repository, tag=ooo_version) - except Exception as e: - _logger.warning('Exception when trying to pull: %s', e) - if any( - '/{}'.format(ooo_name) in container['Names'] - for container in docker_client.containers() - ): - _logger.debug('%s Container already running', ooo_name) - remove_and_stop(docker_client, ooo_name) - - _logger.debug('Starting %s container', ooo_name) - ooo = docker_client.create_container( - image=ooo_image, - name=ooo_name, - ) - _logger.debug('Starting %s container', ooo_name) - docker_client.start(ooo.get('Id')) - - render_repository = 'xcgd/py3oserver-docker' - render_version = '0.5.2' - render_name = 'py3orenderserver' - render_image = '{}:{}'.format(render_repository, render_version) - try: - docker_client.pull(repository=render_repository, tag=render_version) - except Exception as e: - _logger.warning('Exception when trying to pull: %s', e) - if any( - '/{}'.format(render_name) in container['Names'] - for container in docker_client.containers() - ): - _logger.debug('%s Container already running', render_name) - remove_and_stop(docker_client, render_name) - _logger.debug('Starting %s container', render_name) - render_host_config = docker_client.create_host_config( - volumes_from=[ooo.get('Id')] - ) - render = docker_client.create_container( - image=render_image, - host_config=render_host_config, - name=render_name, - ) - _logger.debug('Starting %s container', render_name) - docker_client.start(render.get('Id'), links=[(ooo_name, 'oooserver')]) - - fusion_repository = 'xcgd/py3o.fusion' - fusion_version = '0.8.9' - fusion_name = 'fusionserver' + fusion_repository = 'xcgd/py3o' + fusion_version = '1.0.0' + fusion_name = 'py3o_fusion' fusion_image = '{}:{}'.format(fusion_repository, fusion_version) try: docker_client.pull(repository=fusion_repository, tag=fusion_version) @@ -892,9 +869,9 @@ docker_client.start( fusion.get('Id'), port_bindings=port_bindings, - links=[(render_name, 'py3orenderserver')]) + ) def stop_py3o(): # TODO test if still exists _logger.info('Stopping fusion') docker_client.stop(fusion.get('Id')) @@ -896,11 +873,7 @@ def stop_py3o(): # TODO test if still exists _logger.info('Stopping fusion') docker_client.stop(fusion.get('Id')) - _logger.info('Stopping render') - docker_client.stop(render.get('Id')) - _logger.info('Stopping ooo') - docker_client.stop(ooo.get('Id')) _logger.info('Removing containers') docker_client.remove_container(fusion.get('Id')) @@ -905,7 +878,5 @@ _logger.info('Removing containers') docker_client.remove_container(fusion.get('Id')) - docker_client.remove_container(render.get('Id')) - docker_client.remove_container(ooo.get('Id')) if stop_at_exit: atexit.register(stop_py3o)