Hi Claudio,
The example openacs-org is probably not the best starter example, since it is already quite complex. The example is a down-stripped version of the setup running at openacs.org. It is not intended to work out of the box, since it depends on external resources (the OpenACS source tree, an external database, host-specific networking, etc.). When starting from this example, several adaptations are required for a given site: configuration files, environment variables, database host/port and permissions, and - importantly - making sure the OpenACS checkout is complete and reasonably recent.
If you want an example that works without external dependencies, the oacs-db-inclusive example is the better starting point. It includes the database and does not rely on host resources. BTW, it uses exactly the same YAML merge syntax*as the openacs-org example.
Having said this, there was indeed a stray space in the provided sample docker-compose.yml. YAML syntax is very strict about whitespace, so even a single extra space can break parsing. One can easily check the syntax, for example, with:
docker compose -f docker-compose.yml --env-file .env.example config >/dev/null
Portainer also validates the compose file and will flag such syntax issues immediately.
Regarding the other points:
YAML merge syntax (<<:)
Both forms are valid YAML. If a parser complains, it is usually due to an inconsistency elsewhere (e.g., mixing map-style and list-style environment: entries). The merge syntax itself is fine and used consistently across the examples.
Health check and success.tcl
/SYSTEM/success.tcl has been part of OpenACS for many years. If it is missing, this typically indicates an incomplete or overridden OpenACS checkout. Commenting out the health check hides the symptom; the real fix is to ensure the OpenACS tree is complete and correctly mounted.
Connecting to the host database
Problems here are usually platform-specific (Linux vs macOS/Windows) and related to name resolution (host.docker.internal), database listen addresses, or permissions. Without the exact error message it’s hard to be precise, but this is a known and solvable class of issues.
Thanks again for testing and for the feedback - it’s very helpful, especially for improving documentation and expectations around the examples.
All the best in the new year!
-g