Hi,

Since environment variables are global, I think they should be prefixed by `LOCALSTACK_` in the docker image. For example `SERVICES` environment variable might conflict at some point with something else, so naming it `LOCALSTACK_SERVICES` would be nicer.

This could be optional to avoid breaking changes. Localstack would look for `LOCALSTACK_SERVICES` first, and if it's not defined would fallback to `SERVICES` just as today.

As far as I know, most (maybe all) official docker images do this. I think it's a good practice. See:
- https://hub.docker.com/_/postgres
- https://hub.docker.com/_/nginx
- https://hub.docker.com/_/mysql

Thanks.
for folder in [DATA_DIR, TMP_FOLDER]:
    if folder and not os.path.exists(folder):
        try:
            os.makedirs(folder)
        except Exception:
            
            
            pass
no_proxy = ','.join(set((LOCALSTACK_HOSTNAME, HOSTNAME, LOCALHOST, '127.0.0.1', '[::1]')))
if os.environ.get('no_proxy'):
    os.environ['no_proxy'] += ',' + no_proxy
elif os.environ.get('NO_PROXY'):
    os.environ['NO_PROXY'] += ',' + no_proxy
else:
    os.environ['no_proxy'] = no_proxy
CLI_COMMANDS = {}
VALID_REGIONS = set(Session().get_available_regions('sns'))
def parse_service_ports():
    """ Parses the environment variable $SERVICE_PORTS with a comma-separated list of services
        and (optional) ports they should run on: 'service1:port1,service2,service3:port3' """
    service_ports = os.environ.get('SERVICES', '').strip()
    if not service_ports:
        return DEFAULT_SERVICE_PORTS
    result = {}
    for service_port in re.split(r'\s*,\s*', service_ports):
        parts = re.split(r'[:=]', service_port)
        service = parts[0]
        result[service] = int(parts[-1]) if len(parts) > 1 else DEFAULT_SERVICE_PORTS.get(service)
    return result
def populate_configs(service_ports=None):