Skip to content

Docker

The Docker lexicon provides typed constructors for Docker Compose services and Dockerfile build instructions — services, volumes, networks, configs, secrets, and multi-stage Dockerfiles.

Terminal window
npm install --save-dev @intentius/chant-lexicon-docker
import { Service, Volume, Dockerfile, env } from "@intentius/chant-lexicon-docker";
export const db = new Service({
image: "postgres:16-alpine",
environment: {
POSTGRES_DB: "myapp",
POSTGRES_PASSWORD: env("DB_PASSWORD", { required: true }),
},
volumes: ["pgdata:/var/lib/postgresql/data"],
});
export const pgdata = new Volume({});
export const api = new Service({
image: "myapp:1.0",
ports: ["8080:8080"],
depends_on: ["db"],
});

Build:

Terminal window
chant build src --lexicon docker -o docker-compose.yml
EntityOutput fileSection
Servicedocker-compose.ymlservices:
Volumedocker-compose.ymlvolumes:
Networkdocker-compose.ymlnetworks:
Configdocker-compose.ymlconfigs:
Secretdocker-compose.ymlsecrets:
DockerfileDockerfile.{name}
MetricCount
Compose resources5
Dockerfile resources1
Pre-synth lint rules1
Post-synth checks6

Namespace: Docker