| name | nx-docker |
| description | Docker and containerization for Nx projects. Use when building images, managing containers, or working with docker-compose. |
Docker & Containerization
Development Stack
docker compose up -d
docker compose up -d postgres redis
docker compose logs -f
docker compose down
docker compose down -v
Services
| Service | Port | Purpose |
|---|
postgres | 5432 | PostgreSQL 18 |
redis | 6379 | Redis 7 cache |
Building Images
pnpm nx build auth-server --configuration=production
docker build -t qauth/auth-server:latest -f apps/auth-server/Dockerfile .
pnpm nx run auth-server:prune
Multi-Stage Build Pattern
# Stage 1: Build
FROM node:24-alpine AS builder
WORKDIR /app
COPY . .
RUN pnpm install --frozen-lockfile
RUN pnpm nx build auth-server --configuration=production
RUN pnpm nx run auth-server:prune
# Stage 2: Run
FROM node:24-alpine AS runner
WORKDIR /app
COPY --from=builder /app/dist/apps/auth-server .
RUN pnpm install --prod --frozen-lockfile
CMD ["node", "main.js"]
Fresh Dev Setup
docker compose up -d postgres redis
docker compose exec postgres pg_isready -U postgres
pnpm nx run infra-db:db:migrate
pnpm nx run infra-db:db:seed
pnpm nx serve auth-server
Debugging
docker compose exec postgres bash
docker compose exec postgres psql -U postgres -d qauth
docker compose exec redis redis-cli
Cleanup
docker compose down
docker compose down -v
docker compose down --rmi local
Testcontainers
import { PostgreSqlContainer } from '@testcontainers/postgresql';
const container = await new PostgreSqlContainer().withDatabase('qauth_test').start();