Unattended Operation

These settings matter on a build server that runs many environments side by side. A single project on a developer machine rarely needs them.

Suppressing Published Host Ports

With BrowserSync enabled (ROLL_BROWSERSYNC=1), RollDev publishes its web and UI ports on the host. Two environments with BrowserSync on the same host then claim the same port, Compose reports Bind for 0.0.0.0:<port> failed: port is already allocated, and php-fpm does not start.

Set ROLL_PUBLISH_PORTS=0 in .env.roll to skip the host port mapping:

ROLL_PUBLISH_PORTS=0

The default is 1. With 0, BROWSERSYNC_PORT_WEB and BROWSERSYNC_PORT_UI still reach the php-fpm container, so BrowserSync keeps working for anything on the container network, such as Traefik.

Search Engine Heap Size

Elasticsearch starts with a JVM heap of -Xms64m -Xmx512m, OpenSearch with the default of its image (1g). A large catalog can need more: the container is killed halfway through indexing, and the application only shows a connection error.

Override it per project in .env.roll:

ELASTICSEARCH_JAVA_OPTS=-Xms256m -Xmx2g
OPENSEARCH_JAVA_OPTS=-Xms256m -Xmx2g

Each setting applies to its own engine, so set the one for the engine the project has enabled.

Waiting for Services

roll env up --wait blocks until every service with a healthcheck reports healthy. Use it before a step that needs a ready service, such as a database import right after starting the environment. roll env doctor --format json reports the state of the environment in a form a script can check; see Doctor.