I'm trying to use below AWS services using  docker-compose which looks like below:
version: '2.1'

```
services:
  localstack:
    container_name: localstack-main
    image: localstack/localstack
    ports:
      - "4566-4599:4566-4599"
      - "9000:9000"
    environment:
      - SERVICES=sns,sqs,iam,sts or sns:4575,sqs:4576 etc.
      - DEBUG=1
      - DEFAULT_REGION=eu-west-1
      - DATA_DIR=/tmp/localstack/data
      - AWS_ACCESS_KEY_ID=dummyaccess
      - AWS_SECRET_ACCESS_KEY=dummysecret
      - DOCKER_HOST=unix:///var/run/docker.sock
      - HOST_TMP_FOLDER=/tmp
      - SNS_PORT=4575
      - SQS_PORT=4576
      - IAM_PORT=4593
      - STS_PORT=4592
    volumes:
      - /tmp/localstack:/tmp/localstack
      - "/var/run/docker.sock:/var/run/docker.sock"
```
what is best way to access each services of AWS:
below works fine
```
aws sqs create-queue --endpoint-url=http://localhost:4566 --queue-name my_queue
{
    "QueueUrl": "http://localhost:4566/queue/my_queue"
}
```
as well as
```
aws sqs create-queue --endpoint-url=http://localhost:4576 --queue-name my_queue_1
{
    "QueueUrl": "http://localhost:4576/queue/my_queue_1"
}
```
which ones I should use, my understanding is each service port will be disabled or not available in future.only customised edge_port will be available . 
also if I click both of the QueueUrl posted above , I get below in my docker
```
localstack-main | 2020-05-18T19:58:33:INFO:localstack.services.edge: Unable to find forwarding rule for host "localhost:4566", path "/queue/my_queue_1", target header "", auth header ""
localstack-main | 2020-05-18T20:01:28:INFO:localstack.services.edge: Unable to find forwarding rule for host "localhost:4566", path "/queue/my_queue", target header "", auth header ""
```
also in my data folder, the `recorded_api_calls.json` is empty, even though I called to `create-queue`.  
Which gives me also a feeling that my setup is not quite right? or may be I'm wrong. 
can anyone share a thought on customised docker compose which is quite acceptable by localstack. 
Also, I can't access the dashboard using port 9000(in my docker-compose). how can I access the dashboard? 
BTW,  when I click only `http://localhost:4566 `--> it shows `{"status": "running"}`
"""
    Extracts a Zipfile entry and preserves permissions
    """
    zip_ref.extract(file_entry.filename, path=target_dir)
    out_path = os.path.join(target_dir, file_entry.filename)
    perm = file_entry.external_attr >> 16
    os.chmod(out_path, perm or 0o777)
def untar(path, target_dir):
    mode = 'r:gz' if path.endswith('gz') else 'r'
    with tarfile.open(path, mode) as tar:
        tar.extractall(path=target_dir)
def zip_contains_jar_entries(content, jar_path_prefix=None, match_single_jar=True):
    try:
        with tempfile.NamedTemporaryFile() as tf:
            tf.write(content)
            tf.flush()
            with zipfile.ZipFile(tf.name, 'r') as zf:
                jar_entries = [e for e in zf.infolist() if e.filename.lower().endswith('.jar')]
                if match_single_jar and len(jar_entries) == 1 and len(zf.infolist()) == 1:
                    return True
                matching_prefix = [e for e in jar_entries if
                    not jar_path_prefix or e.filename.lower().startswith(jar_path_prefix)]
                return len(matching_prefix) > 0
    except Exception:
        return False
def is_jar_archive(content):