Skip to content

Getting Started

Terminal window
# New project
chant init --lexicon docker my-project
cd my-project
# Existing project
npm install --save-dev @intentius/chant-lexicon-docker

Create src/compose.ts:

import { Service, Volume, env } from "@intentius/chant-lexicon-docker";
export const db = new Service({
image: "postgres:16-alpine",
environment: {
POSTGRES_DB: "myapp",
POSTGRES_USER: "myapp",
POSTGRES_PASSWORD: env("DB_PASSWORD", { required: true }),
},
volumes: ["pgdata:/var/lib/postgresql/data"],
restart: "unless-stopped",
});
export const pgdata = new Volume({});
export const api = new Service({
image: "myapp:1.0",
ports: ["8080:8080"],
depends_on: ["db"],
});
Terminal window
# Generate docker-compose.yml
chant build src --lexicon docker -o docker-compose.yml
# Lint for issues before running
chant lint src
# Bring up the stack
docker compose up -d