product:up
Start the active product and all its declared features using Docker Compose.
Development environment
Start (dev)
splent product:up --dev
Uses these compose files, in order.
docker-compose.dev.yml(preferred)docker-compose.yml(fallback)
Production environment
Start (prod)
splent product:up --prod
Uses these compose files, in order.
docker-compose.prod.yml(preferred)docker-compose.yml(fallback)
Description
This command does the following.
- Reads the declared features from the active product
pyproject.toml. - Resolves the UVL dependency order for all declared features.
- Launches each feature’s Docker Compose stack in UVL dependency order from this directory.
<workspace>/.splent_cache/features/<feature>/docker/
- After each feature launch, waits for its health checks to pass before starting the next feature. This ensures that dependent services (e.g., a mail feature that depends on redis) only start once their dependencies are healthy.
- Launches the product Docker Compose stack last from this directory.
<workspace>/<product>/docker/
Each stack is started with docker compose up -d under a compose project name of its own. For the product’s own stack that name comes from the product and the environment; for a feature’s stack it also carries the product, so two products of one line each get their own containers and their own volumes rather than sharing one set. The feature stack is handed the product’s merged env file and joins the product’s network, both created here if they do not exist yet. See Features that run a server.
If a service does not define a health check, it is considered ready immediately after container creation.
Progress is shown per service as it launches.
⏳ redis ✓
⏳ nginx waiting... ✓
⏳ my_first_app ✓
A ✓ means the service started (and is healthy, if it declares a health check). A ✗ means the service failed to start. Error details are printed inline and the pipeline is aborted before launching the product.
Requirements
- A product must be selected (
SPLENT_APPset). - The product must contain
pyproject.toml. - Each component (feature/product) must provide a Docker Compose file under its
docker/directory.