@Override
    protected void containerIsStarting(final InspectContainerResponse containerInfo) {
        logger().debug("Couchbase container is starting, performing configuration.");

        timePhase("waitUntilNodeIsOnline", this::waitUntilNodeIsOnline);
        timePhase("initializeIsEnterprise", this::initializeIsEnterprise);
        timePhase("initializeHasTlsPorts", this::initializeHasTlsPorts);
        timePhase("renameNode", this::renameNode);
        timePhase("initializeServices", this::initializeServices);
        timePhase("setMemoryQuotas", this::setMemoryQuotas);
        timePhase("configureAdminUser", this::configureAdminUser);
        timePhase("configureExternalPorts", this::configureExternalPorts);

        if (enabledServices.contains(CouchbaseService.INDEX)) {
            timePhase("configureIndexer", this::configureIndexer);
        }
    }
Configures the exposed ports based on the enabled services.
<p>
Note that the MGMT_PORTs are always enabled since there must always be a cluster
manager. Also, the View engine ports are implicitly available on the same nodes
where the KV service is enabled - it is not possible to configure them individually.
modules/couchbase/src/main/java/org/testcontainers/couchbase/CouchbaseContainer.java