Support the following scenarios: 1. `ports: [8000]` - map to 8000 of fail if the port is taken 2. `ports: ["8001:8000"]` - map to 8001 of fail if the port is taken 3. `ports: ["*:8000"]` - map to 8000 of fail another if the port is taken