Skip to content

Docker Development

Docker mode runs the complete CEDAR system in containers. It is the simplest way to reproduce a known application state because the whole deployment can use one verified build train.

Follow the Docker installation guide for configuration, certificates, and first-time setup. This page covers the normal cedarcli workflow after that setup.

Start CEDAR

Select Docker mode and confirm the configuration:

cedarcli mode docker
cedarcli env status
cedarcli docker validate

Start the latest verified train and wait for the complete application to become ready:

cedarcli docker start all --pull missing --timeout 1800
cedarcli docker status

--pull missing downloads images that are not already on the machine. Use --pull always when you want Docker to check the registry again, or --pull never when the selected images must come only from the local cache.

Select an older verified train when reproducing a specific deployment:

cedarcli docker start all --train <TRAIN_ID> --pull missing --timeout 1800

cedarcli docker status renders one grouped table for infrastructure, microservices, and, in full Docker mode, frontends. Each service row shows Compose health, whether the running image is the configured image, its published or internal ports, and its restart count. MISMATCH is a failure even when the container is healthy: it means the running image is not the selected train or local development tag. The final summary also reports the authentication and public-route acceptance checks and the active image set.

Operate on One Part

The start and stop commands also accept smaller targets:

cedarcli docker start infra --detach
cedarcli docker start microservices --detach
cedarcli docker start microservice resource --detach
cedarcli docker start frontends --detach
cedarcli docker start frontend workspace --detach
cedarcli docker start keycloak --detach

Use these after the deployment has been prepared, when diagnosing or restarting one part. The optional admin target starts the administration tools and is managed separately from the main deployment.

Build Docker Images

Starting CEDAR uses existing images; it does not build them. Developers changing Docker definitions can build a complete group or one image:

cedarcli docker build infra
cedarcli docker build microservices
cedarcli docker build frontends

Infrastructure and microservice builds use the current completed Maven train unless --train or --local selects another input. An interactive frontend build uses compatibility pins and is not a reconstruction of the train's verified npm graph; use the already-published train images when exact frontend reproduction matters.

To construct images from locally built Java artifacts, use the local path consistently:

cedarcli build java
cedarcli docker build infra --local
cedarcli docker build microservices --local
cedarcli docker build frontends --local
cedarcli docker start all --local --pull never

Use the published train path for reproducible deployments and the local path while developing changes that have not been published. The local frontend build is an explicit development experiment, not promotion evidence for a train.

Stop or Reset CEDAR

An ordinary stop preserves application data:

cedarcli docker stop all

The cedarcli docker remove commands are for resetting or uninstalling the deployment. In particular, removing volumes deletes databases, certificates, logs, and other persistent state. The Docker run page explains the reset choices and their consequences.