The easiest way to start taking advantage of CUE’s powerful validation is to use it to check existing configuration files. By adding this check to your development or deployment process you can catch and fix errors before they affect downstream systems.
This guide shows you how to use the cue
command to validate a compose file
using
a curated module from the
CUE Central Registry – all without writing any
schemas or policies in CUE.
The latest pre-release of the cue
command is required – please
upgrade to this version if it’s not already installed:
$ cue version
cue version v0.13.0-alpha.3
...
Login to the Central Registry
$ cue login # only during beta
The Central Registry requires authentication while it’s in beta testing, so you need to login before you can use its schemas.
Choose a compose file
This example is based on one from the
docker/awesome-compose
repository, but you should use any compose file that’s relevant to your
situation.
# filepath: compose.yml
services:
postgres:
container_name: postgres
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PW}
- POSTGRES_DB=${POSTGRES_DB}
image: postgres:latest
ports:
- "5432:5432"
restart: always
pgadmin:
container_name: pgadmin
environment:
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_MAIL}
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_PW}
image: dpage/pgadmin4:latest
ports:
- "5050:80"
restart: always
Validate the compose file
$ cue vet -c -d '#Schema' test.cue.works/x1/dockercompose@latest compose.yml
This command uses the #Schema
definition from the dockercompose
package to
check the compose.yml
file. Because cue vet
doesn’t display any errors, you
know that the curated module has validated your configuration file.
Next steps
Validating your existing configuration files with CUE can help make development and deployments safer, but defining those same files in CUE lets you build on its first-class templating, referencing, and policy features. Take the first step with Getting started with Docker Compose + CUE …