Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .agents/skills/infra/docker-dev/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ docker compose -f docker/compose.yaml --profile postgres up
docker compose -f docker/compose.yaml --profile minio up # console on 9001
```

If `postgres` exits 1 before printing a single server line, and the message names
`pg_ctlcluster` and a major-version directory, the volume was written by an older major
version. Postgres 18 keeps its cluster under `/var/lib/postgresql/18/` and will not adopt
one left by 16. `docker volume rm visionset_postgres-data` clears it; nothing reads this
service, so there is nothing in there to keep.

## The three ways to run it

The stack has three permanent, mutually compatible configurations. They differ in one
Expand Down
11 changes: 9 additions & 2 deletions docker/compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -265,15 +265,22 @@ services:
# why they sit behind profiles and are off by default.
postgres:
profiles: ["postgres"]
image: postgres:16
image: postgres:18
environment:
POSTGRES_DB: visionset
POSTGRES_USER: visionset
POSTGRES_PASSWORD: visionset
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
# The whole directory, not the `data/` beneath it. From 18 the image keeps its
# cluster in a major-version subdirectory and refuses to start at all — exit 1
# before any server — when it finds a mount on the old path, so bumping the tag
# without moving this line takes the profile down. A cluster written by 16 is
# unreadable to 18 wherever it is mounted: `docker volume rm
# visionset_postgres-data` is the way through, and costs nothing while nothing
# is wired to this service.
- postgres-data:/var/lib/postgresql

minio:
profiles: ["minio"]
Expand Down
Loading