lad-website/docker-compose.dev.yml

83 lines
2.1 KiB
YAML

services:
# Frontend development service with hot reloading
frontend:
build:
context: ./frontend
dockerfile: Dockerfile.dev
restart: unless-stopped
ports:
- "3000:3000"
depends_on:
- mongodb
environment:
- NODE_ENV=development
- NEXT_PUBLIC_API_URL=http://localhost:4000
volumes:
- ./frontend/src:/app/src:rw
- ./frontend/public:/app/public:rw
- ./frontend/package.json:/app/package.json:rw
- ./frontend/package-lock.json:/app/package-lock.json:rw
- ./frontend/next.config.js:/app/next.config.js:rw
- ./frontend/tailwind.config.js:/app/tailwind.config.js:rw
- ./frontend/postcss.config.js:/app/postcss.config.js:rw
- ./frontend/tsconfig.json:/app/tsconfig.json:rw
- /app/node_modules
- /app/.next
networks:
- app-network
command: npm run dev
# Backend development service with hot reloading
backend:
build:
context: ./backend
dockerfile: Dockerfile.dev
restart: unless-stopped
ports:
- "4000:4000"
depends_on:
- mongodb
environment:
- NODE_ENV=development
- MONGODB_URI=mongodb://mongodb:27017/ocd-website
- PORT=4000
volumes:
- ./backend/src:/app/src:rw
- ./backend/package.json:/app/package.json:rw
- ./backend/package-lock.json:/app/package-lock.json:rw
- ./backend/tsconfig.json:/app/tsconfig.json:rw
- ./backend/uploads:/app/uploads:rw
- /app/node_modules
- /app/dist
networks:
- app-network
command: npm run dev
# MongoDB service for development
mongodb:
image: mongo:7.0
restart: unless-stopped
ports:
- "27017:27017"
volumes:
- mongo-dev-data:/data/db:rw
- ./mongo-init:/docker-entrypoint-initdb.d:ro
networks:
- app-network
environment:
- MONGO_INITDB_DATABASE=ocd-website
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017 --quiet
interval: 30s
timeout: 10s
retries: 3
# Networks
networks:
app-network:
driver: bridge
# Volumes
volumes:
mongo-dev-data:
name: ocd-mongo-dev-data