Files
PersonalBlog/compose.yaml
T
implementer 3bbea68e6c
CI / Frozen lockfile install (pull_request) Successful in 48s
fix: align app/db image bases with documented stack (E00-S02-T01)
Switch the app image from node:24-alpine to node:24.19.0-bookworm-slim in
both build and runtime stages (Technology-Stack 5.4: glibc Debian base
required because argon2 is a native dependency; musl/Alpine causes
native-module build surprises), and the db image from postgres:16-alpine
to postgres:18-bookworm (Technology-Stack 5.2/5.4/6.2 + golden tuple 7
pin PostgreSQL 18.6; 18-bookworm is the 18.x line on Debian bookworm).

Update tests/compose-config.test.mjs so the committed assertions lock in
the corrected image bases (db image, Dockerfile build/runtime stages,
parser probe).
2026-08-28 23:45:18 +00:00

36 lines
1.1 KiB
YAML

# EPPP Docker Compose baseline — [E00-S02-T01]
#
# `docker compose up -d` starts both the database (PostgreSQL) and the
# application (@personal-blog/server). Rollback: `docker compose down`.
#
# Explicitly out of scope for T01 (land in later E00-S02 tasks):
# - PostgreSQL health gate (T02)
# - application health endpoint (T03)
# - DB volume persistence (T04)
#
# All values have defaults so `docker compose up -d` works from a clean clone
# without a .env file (a committed .env.example template lands in E00-S04).
services:
db:
# PostgreSQL 18 on Debian bookworm — the documented runtime target
# (Technology-Stack §5.2/§5.4/§6.2, golden tuple §7; no Alpine drift).
image: postgres:18-bookworm
environment:
POSTGRES_DB: ${POSTGRES_DB:-eppp}
POSTGRES_USER: ${POSTGRES_USER:-eppp}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-eppp}
ports:
- "${POSTGRES_PORT:-5432}:5432"
app:
build:
context: .
dockerfile: apps/server/Dockerfile
environment:
DATABASE_URL: postgres://eppp:eppp@db:5432/eppp
ports:
- "${APP_PORT:-3000}:3000"
depends_on:
- db