One-Command Startup

Running BookNest with a Single Command

Add the front end's port to .env, delete the old volume for a true first run, and start everything: --build builds both images and --wait returns only when every service is healthy.

Starting the whole of BookNest from nothingShell
echo WEB_PORT=33080 >> .env
docker compose down -v >/dev/null 2>&1
SECONDS=0; docker compose up -d --build --wait 2>&1 | grep -E 'Built|Healthy' \
  | awk '!seen[$0]++'; echo "${SECONDS}s"
docker compose logs --no-log-prefix db | grep -E 'initdb.d|CREATE DATABASE'
docker compose exec db psql -U booknest -tAc 'SELECT count(*) FROM books'
Output
 Image l3-booknest-api Built
 Image l3-booknest-web Built
 Container l3-booknest-db-1 Healthy
 Container l3-booknest-api-1 Healthy
 Container l3-booknest-web-1 Healthy
17s
CREATE DATABASE
/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
6

Compose 514 built both images and waited for each healthcheck in dependency order. The log shows a first initialization with no init scripts, and the API seeded six books. The time is from a shared 4-CPU machine with warm caches; a clean machine first pulls the base images.