Liquibase Enterprise Deployment Monitoring Console (DMC)
553
Production-ready Docker image for the Liquibase Enterprise Deployment Monitoring Console (DMC).
Full documentation: Contact Liquibase Support for detailed deployment guides.
latest — most recent release8.10.489 — specific version (patch)8.10 — minor version (tracks latest patch)docker run -d \
--name dmc \
--hostname datical-service \
--platform linux/amd64 \
-p 80:80 -p 443:443 \
-v dmc-data:/opt/datical/data \
liquibase/liquibase-enterprise-dmc:latest
services:
dmc:
image: liquibase/liquibase-enterprise-dmc:latest
platform: linux/amd64
hostname: datical-service
ports:
- "80:80"
- "443:443"
volumes:
- dmc-data:/opt/datical/data
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8000/actuator/health"]
interval: 30s
timeout: 10s
start_period: 180s
retries: 5
volumes:
dmc-data:
docker compose up -d
Allow ~2 minutes for startup, then access the UI at https://localhost.
Default credentials: [email protected] / datical
# Check container health
docker inspect --format='{{.State.Health.Status}}' dmc
# Check health endpoint
curl -sk https://localhost/actuator/health
# Expected: {"status":"UP"}
Note: The DMC image is x86_64 only. On Apple Silicon Macs, use
--platform linux/amd64(QEMU emulation). Startup will be slower than on native x86_64 hardware.
Set the external hostname used for service routing and the SSL certificate:
docker run -d \
--name dmc \
--hostname datical-service \
--platform linux/amd64 \
-e DMC_HOSTNAME=dmc.example.com \
-p 80:80 -p 443:443 \
-v dmc-data:/opt/datical/data \
liquibase/liquibase-enterprise-dmc:latest
By default, DMC runs in demo mode with an embedded PostgreSQL. For production, connect to an external PostgreSQL (12-16) by setting DMC_DB_URL:
docker run -d \
--name dmc \
--hostname datical-service \
--platform linux/amd64 \
-e DMC_HOSTNAME=dmc.example.com \
-e DMC_DB_URL=jdbc:postgresql://db.example.com:5432/datical \
-e DMC_DB_USERNAME=datical \
-e DMC_DB_PASSWORD=your-password \
-p 80:80 -p 443:443 \
-v dmc-data:/opt/datical/data \
liquibase/liquibase-enterprise-dmc:latest
Setting DMC_DB_URL automatically:
CREATE DATABASE datical;
CREATE USER datical WITH LOGIN PASSWORD '<your-password>';
GRANT CREATE, CONNECT, TEMPORARY ON DATABASE datical TO datical WITH GRANT OPTION;
\c datical
CREATE SCHEMA datical;
ALTER SCHEMA datical OWNER TO datical;
ALTER ROLE datical IN DATABASE datical SET search_path TO datical;
When connecting to an existing DMC database, four secrets must match. Provide them via file mount or environment variables.
Option A — Mount the original cluster.properties:
docker run -d \
--name dmc \
--hostname datical-service \
--platform linux/amd64 \
-e DMC_DB_URL=jdbc:postgresql://db.example.com:5432/datical \
-e DMC_DB_USERNAME=datical \
-e DMC_DB_PASSWORD=your-password \
-e DMC_CLUSTER_PROPERTIES=/tmp/restore.cluster.properties \
-v /path/to/old/cluster.properties:/tmp/restore.cluster.properties:ro \
-p 80:80 -p 443:443 \
-v dmc-data:/opt/datical/data \
liquibase/liquibase-enterprise-dmc:latest
Option B — Pass individual secrets (base64-encoded):
docker run -d \
--name dmc \
--hostname datical-service \
--platform linux/amd64 \
-e DMC_DB_URL=jdbc:postgresql://db.example.com:5432/datical \
-e DMC_DB_USERNAME=datical \
-e DMC_DB_PASSWORD=your-password \
-e DMC_KC_PASSWORD=<base64-value> \
-e DMC_KC_CLIENT_SECRET=<base64-value> \
-e DMC_ENCRYPT_KEY=<base64-value> \
-e DMC_ENCRYPT_SALT=<base64-value> \
-p 80:80 -p 443:443 \
-v dmc-data:/opt/datical/data \
liquibase/liquibase-enterprise-dmc:latest
Contact Liquibase Support for details on extracting secrets and pg_dump migration preparation.
For production, place a reverse proxy or load balancer with your own TLS certificates in front of the DMC container. The built-in certificate is self-signed.
| Variable | Required | Default | Description |
|---|---|---|---|
DMC_HOSTNAME | No | datical-service | External hostname for service routing and SSL certificate |
DMC_DB_URL | No | (embedded PG) | JDBC URL for external database; enables production mode |
DMC_DB_USERNAME | No | (installed value) | Database username for external database |
DMC_DB_PASSWORD | No | (installed value) | Database password (plaintext; base64-encoded by entrypoint) |
DMC_CLUSTER_PROPERTIES | No | (none) | Path to original cluster.properties file (for migration) |
DMC_KC_PASSWORD | No | (none) | Keycloak internal password (base64-encoded, for migration) |
DMC_KC_CLIENT_SECRET | No | (none) | Keycloak client secret (base64-encoded, for migration) |
DMC_ENCRYPT_KEY | No | (none) | Encryption key (base64-encoded, for migration) |
DMC_ENCRYPT_SALT | No | (none) | Encryption salt (base64-encoded, for migration) |
| Path | Description |
|---|---|
/opt/datical/data | Persistent data: PostgreSQL (demo mode), Keycloak caches, SSL keystore |
Mount this volume to preserve data across container restarts:
-v dmc-data:/opt/datical/data
| Port | Service |
|---|---|
| 80 | HTTP (redirects to HTTPS) |
| 443 | HTTPS (main UI and API) |
| 5432 | PostgreSQL (internal, demo mode only) |
| 8080 | Keycloak (internal) |
For production use:
DMC_DB_URL)DMC_HOSTNAME to your actual external hostnameContact Liquibase Support for complete production deployment instructions.
A sample Kubernetes manifest is included with the product. It creates a Namespace, PVC, Deployment, and Service. Contact Liquibase Support for the manifest and deployment instructions.
Key considerations:
replicas: 1 with Recreate strategy)/actuator/health on port 8000, initial delay 180s/actuator/health on port 8000, initial delay 120sContact Liquibase Support for detailed Kubernetes deployment instructions.
Application data is stored at /opt/datical/data. On first run with an empty volume, data is automatically initialized from the image.
To back up:
docker stop dmc
docker run --rm -v dmc-data:/data -v $(pwd):/backup alpine tar czf /backup/dmc-backup.tar.gz -C /data .
docker start dmc
docker pull liquibase/liquibase-enterprise-dmc:<new-version>
docker-compose.yml (or Kubernetes manifest) with the new image tagdocker compose up -d
The data volume at /opt/datical/data persists across upgrades. The DMC application auto-runs Liquibase migrations on startup, so schema updates are handled automatically.
| Symptom | Solution |
|---|---|
| Container takes >2 min to start | Normal for first run. Check logs: docker logs -f dmc |
| SSL certificate warnings | Expected with self-signed certs. Use a reverse proxy with your own certificates |
| Port conflicts | Change host port mappings (e.g., -p 8443:443) |
| Keycloak auth fails on existing DB | Secrets mismatch. See Migrating Secrets |
relation "databasechangeloglock" already exists | Set search_path: ALTER ROLE <user> IN DATABASE <db> SET search_path TO datical; |
Content type
Image
Digest
sha256:b68ff8497…
Size
456.4 MB
Last updated
6 months ago
docker pull liquibase/liquibase-enterprise-dmc