fix: add setup service for db push/seed; update README
The production runner image has no node_modules, so prisma CLI and tsx are unavailable. Add a Compose 'setup' profile service that uses the builder stage (which has all dev tools) to run db push and db seed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
20
README.md
20
README.md
@@ -26,14 +26,19 @@ Edit `.env`:
|
||||
- Change `POSTGRES_PASSWORD` to a strong password
|
||||
|
||||
```sh
|
||||
# 2. Build and start the stack
|
||||
docker compose up --build -d
|
||||
# 2. Build the images
|
||||
docker compose build
|
||||
|
||||
# 3. First-run only: apply the schema and create your user
|
||||
docker compose exec app npx prisma db push
|
||||
docker compose exec app npx prisma db seed
|
||||
# 3. Start the database
|
||||
docker compose up db -d
|
||||
|
||||
# 4. Open the app
|
||||
# 4. First-run only: apply the schema and create your user
|
||||
docker compose --profile setup run --rm setup
|
||||
|
||||
# 5. Start the app
|
||||
docker compose up app -d
|
||||
|
||||
# 6. Open the app
|
||||
open http://localhost:3000
|
||||
```
|
||||
|
||||
@@ -65,8 +70,7 @@ docker compose down
|
||||
docker compose down -v
|
||||
|
||||
# Re-seed after a wipe
|
||||
docker compose exec app npx prisma db push
|
||||
docker compose exec app npx prisma db seed
|
||||
docker compose --profile setup run --rm setup
|
||||
|
||||
# Check health
|
||||
curl http://localhost:3000/api/health
|
||||
|
||||
@@ -33,5 +33,23 @@ services:
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
|
||||
# First-run setup: applies the schema and seeds the user.
|
||||
# Uses the builder stage so all dev tools (prisma CLI, tsx, bcryptjs) are available.
|
||||
# Run once with: docker compose --profile setup run --rm setup
|
||||
setup:
|
||||
build:
|
||||
context: .
|
||||
target: builder
|
||||
command: sh -c "npx prisma db push && npx prisma db seed"
|
||||
environment:
|
||||
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
|
||||
SEED_EMAIL: ${SEED_EMAIL}
|
||||
SEED_PASSWORD: ${SEED_PASSWORD}
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
profiles:
|
||||
- setup
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
|
||||
Reference in New Issue
Block a user