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_APP set).
  • The product must contain pyproject.toml.
  • Each component (feature/product) must provide a Docker Compose file under its docker/ directory.

Back to top

splent. Distributed by an LGPL license v3. Contact us: drorganvidez@us.es