diff --git a/backend/Makefile b/backend/Makefile index d81f66a..86695a5 100644 --- a/backend/Makefile +++ b/backend/Makefile @@ -1,18 +1,33 @@ # Makefile for backend services -.PHONY: build up down logs +.PHONY: build up down logs status dev-up dev-down build: docker-compose build +build-dev: + docker-compose -f docker-compose.dev.yml build + up: docker-compose up -d +dev-up: + docker-compose -f docker-compose.dev.yml up -d + down: docker-compose down +dev-down: + docker-compose -f docker-compose.dev.yml down + logs: docker-compose logs -f +dev-logs: + docker-compose -f docker-compose.dev.yml logs -f + status: docker-compose ps + +dev-status: + docker-compose -f docker-compose.dev.yml ps diff --git a/backend/docker-compose.dev.yml b/backend/docker-compose.dev.yml new file mode 100644 index 0000000..043cd31 --- /dev/null +++ b/backend/docker-compose.dev.yml @@ -0,0 +1,79 @@ +version: '3.8' + +services: + nginx: + image: nginx:1.25-alpine + ports: + - "80:80" + volumes: + - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro + depends_on: + - gateway + networks: + - backend-network + + gateway: + build: + context: ./gateway + dockerfile: Dockerfile + ports: + - "8080:8080" + environment: + - GO_ENV=development + - REDIS_ADDR=redis:6379 + volumes: + - ./gateway:/app + depends_on: + - redis + networks: + - backend-network + + user-svc: + build: + context: ./services/user-svc + dockerfile: Dockerfile + ports: + - "50051:50051" + environment: + - GO_ENV=development + - POSTGRES_HOST=postgres + - POSTGRES_PORT=5432 + - POSTGRES_USER=admin + - POSTGRES_PASSWORD=password + - POSTGRES_DB=userdb + volumes: + - ./services/user-svc:/app + depends_on: + - postgres + networks: + - backend-network + + postgres: + image: postgres:18.3-alpine3.23 + ports: + - "5432:5432" + environment: + - POSTGRES_USER=admin + - POSTGRES_PASSWORD=password + - POSTGRES_DB=userdb + volumes: + - postgres-data:/var/lib/postgresql/data + networks: + - backend-network + + redis: + image: redis:8.6.2-alpine + ports: + - "6379:6379" + volumes: + - redis-data:/data + networks: + - backend-network + +volumes: + postgres-data: + redis-data: + +networks: + backend-network: + driver: bridge diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml index 82a0d86..9ca9ee4 100644 --- a/backend/docker-compose.yml +++ b/backend/docker-compose.yml @@ -9,19 +9,67 @@ services: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - gateway + networks: + - backend-network gateway: build: context: ./gateway + dockerfile: Dockerfile ports: - "8080:8080" environment: - GO_ENV=production + - REDIS_ADDR=redis:6379 + depends_on: + - redis + networks: + - backend-network user-svc: build: context: ./services/user-svc + dockerfile: Dockerfile ports: - "50051:50051" environment: - GO_ENV=production + - POSTGRES_HOST=postgres + - POSTGRES_PORT=5432 + - POSTGRES_USER=admin + - POSTGRES_PASSWORD=password + - POSTGRES_DB=userdb + depends_on: + - postgres + networks: + - backend-network + + postgres: + image: postgres:18.3-alpine3.23 + ports: + - "5432:5432" + environment: + - POSTGRES_USER=admin + - POSTGRES_PASSWORD=password + - POSTGRES_DB=userdb + volumes: + - postgres-data:/var/lib/postgresql/data + networks: + - backend-network + + redis: + image: redis:8.6.2-alpine + ports: + - "6379:6379" + volumes: + - redis-data:/data + networks: + - backend-network + +volumes: + postgres-data: + redis-data: + +networks: + backend-network: + driver: bridge