Everything is now containerised and in the docker compose

This commit is contained in:
2025-08-09 17:40:01 +01:00
parent 371f48b42f
commit 22328ae6b1
11 changed files with 375 additions and 51 deletions

View File

@@ -1,21 +1,64 @@
version: '3.8'
services:
# MongoDB Database
mongodb:
image: mongo:7.0
container_name: recipe-management-mongodb
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGODB_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGODB_PASSWORD}
MONGO_INITDB_DATABASE: ${MONGODB_DATABASE}
ports:
- "27017:27017"
volumes:
- mongodb_data:/data/db
- ./backend/seedData.js:/docker-entrypoint-initdb.d/seedData.js:ro
- ./backend/seedData.js:/docker-entrypoint-initdb.d/01-seedData.js:ro
networks:
- recipe-network
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')", "--quiet"]
interval: 30s
timeout: 10s
retries: 5
start_period: 40s
# Backend API Service
backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: recipe-management-backend
restart: unless-stopped
environment:
- PORT=5000
- MONGODB_HOST=mongodb
- MONGODB_PORT=27017
- MONGODB_DATABASE=recipe-management
- JWT_SECRET=${JWT_SECRET}
ports:
- "5000:5000"
depends_on:
mongodb:
condition: service_healthy
networks:
- recipe-network
volumes:
- ./backend:/app
- /app/node_modules
# Frontend React App
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: recipe-management-frontend
restart: unless-stopped
ports:
- "3000:80"
depends_on:
- backend
networks:
- recipe-network
environment:
- REACT_APP_API_URL=http://localhost:5000
# Optional: MongoDB Express for database management
mongo-express:
@@ -25,12 +68,11 @@ services:
ports:
- "8081:8081"
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGODB_USERNAME}
ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGODB_PASSWORD}
ME_CONFIG_MONGODB_URL: mongodb://${MONGODB_USERNAME}:${MONGODB_PASSWORD}@mongodb:27017/
ME_CONFIG_MONGODB_URL: mongodb://mongodb:27017/
ME_CONFIG_BASICAUTH: false
depends_on:
- mongodb
mongodb:
condition: service_healthy
networks:
- recipe-network