'Loads config from container.yml,  and stores the resulting dict to self._config.
:param env: string of either \'dev\' or \'prod\'. Indicates \'dev_overrides\' handling.
:return: None'

@abstractmethod
def set_env(self, env):

    assert (env in ['dev', 'prod'])
    try:
        config = yaml.round_trip_load(open(self.config_path))
    except IOError:
        raise AnsibleContainerNotInitializedException()
    except yaml.YAMLError as exc:
        raise AnsibleContainerConfigException((u'Parsing    container.yml    -    %s' % unicode(exc)))
    self._validate_config(config)
    for (service, service_config) in iteritems((config.get('services') or {})):
        if ((not service_config) or isinstance(service_config, string_types)):
            raise AnsibleContainerConfigException((u'Error:    no    definition    found    in    container.yml    for    service    %s.' % service))
        if isinstance(service_config, dict):
            dev_overrides = service_config.pop('dev_overrides', {})
            if (env == 'dev'):
                service_config.update(dev_overrides)
        if ('volumes' in service_config):
            updated_volumes = []
            for volume in service_config['volumes']:
                vol_pieces = volume.split(':')
                vol_pieces[0] = path.normpath(path.expandvars(path.expanduser(vol_pieces[0])))
                updated_volumes.append(':'.join(vol_pieces))
            service_config['volumes'] = updated_volumes
        for engine_name in self.remove_engines:
            if (engine_name in service_config):
                del service_config[engine_name]
    if (config.get('settings', None) is None):
        config['settings'] = yaml.compat.ordereddict()
    config['settings']['pwd'] = self.base_path
    self._resolve_defaults(config)
    logger.debug(u'Parsed    config', config=config)
    self._config = config
