diff --git a/docker_dev_start.py b/docker_dev_start.py index 07c327d902e5aad83d79a803b0f2edac80ef1ad9_ZG9ja2VyX2Rldl9zdGFydC5weQ==..4f0257e9564c5f7e092c2de74c5dc473d888dc0f_ZG9ja2VyX2Rldl9zdGFydC5weQ== 100755 --- a/docker_dev_start.py +++ b/docker_dev_start.py @@ -514,15 +514,21 @@ password = 'odoo' # data volume handling - if odoo_type != 'odoo7': - data_volume_name = '{}_data'.format(project_name) - _logger.debug('Using data volume %s', data_volume_name) - createVolume(docker_client, data_volume_name) - # make sure the permission in the volume are correct - mount_opts = '{}:/mnt/data'.format(data_volume_name) - # TODO replace by something cleaner if possible - call([ - 'docker', 'run', '--rm', '-v', - mount_opts, 'busybox', 'chmod', '-R', '777', '/mnt/data', - ]) + if odoo_type == 'odoo7': + _logger.debug('Only sessions volume for this odoo version') + # this path is in odoo code, the last part is the system user + data_volume_path = '/tmp/oe-sessions-{}'.format('odoo') + else: + data_volume_path = '/mnt/data' + arg.append('--data-dir {}'.format(data_volume_path)) + data_volume_name = '{}_data'.format(project_name) + _logger.debug('Using data volume %s', data_volume_name) + createVolume(docker_client, data_volume_name) + # make sure the permission in the volume are correct + mount_opts = '{}:/mnt'.format(data_volume_name) + # TODO replace by something cleaner if possible + call([ + 'docker', 'run', '--rm', '-v', mount_opts, '--entrypoint', + '/bin/chown', image, 'odoo', '/mnt', + ]) @@ -528,7 +534,4 @@ - binds.append('{}:/mnt/data'.format(data_volume_name)) - arg.append('--data-dir /mnt/data') - else: - _logger.debug('No data volume for this odoo version') + binds.append('{}:{}'.format(data_volume_name, data_volume_path)) # avoid the duplication of unbind volumes with all addons @@ -533,6 +536,24 @@ # avoid the duplication of unbind volumes with all addons - # additionnal_addons only in odoo < 10 - for extra_volume in ['additional_addons', 'var', 'data']: - volume_name = '{}_opt_odoo_{}'.format(project_name, extra_volume) + if odoo_type == 'odoo7': + extra_volumes = [ + '/opt/odoo/additional_addons', '/opt/odoo/var', + # not used but declared as a mount point in Dockerfile :-( + '/opt/odoo/data', + ] + elif odoo_type == 'odoo8': + extra_volumes = [ + '/opt/odoo/additional_addons', '/opt/odoo/var', '/opt/odoo/data', + ] + elif odoo_type == 'odoo10': + extra_volumes = [ + '/opt/odoo/additional_addons', '/opt/odoo/var', '/opt/odoo/data', + ] + else: + extra_volumes = [ + '/var/lib/odoo', + ] + for extra_volume in extra_volumes: + volume_name = '{}_{}'.format( + project_name, extra_volume.replace('/', '_')) # volume = createVolume(docker_client, volume_name) @@ -538,5 +559,5 @@ # volume = createVolume(docker_client, volume_name) - binds.append('{}:/opt/odoo/{}'.format(volume_name, extra_volume)) + binds.append('{}:{}'.format(volume_name, extra_volume)) start_py3o_stack = 'report_py3o_fusion_server' in module_list