microservices / docker-compose.yml
ishans24's picture
adding file
1c8e50c
version: '3.8'
services:
mongo:
image: mongo:6.0
container_name: task-management-mongo
restart: unless-stopped
ports:
- "27017:27017"
volumes:
- mongo-data:/data/db
networks:
- task-management-network
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 30s
timeout: 10s
retries: 5
zipkin:
image: openzipkin/zipkin:latest
container_name: task-management-zipkin
restart: unless-stopped
ports:
- "9411:9411"
networks:
- task-management-network
eureka-server:
build:
context: ./EurekaServerConfiguration
dockerfile: Dockerfile
container_name: task-management-eureka
restart: unless-stopped
ports:
- "8085:8085"
environment:
SPRING_PROFILES_ACTIVE: docker
ZIPKIN_BASE_URL: http://zipkin:9411
networks:
- task-management-network
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8085/actuator/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
user-service:
build:
context: ./TaskUserService
dockerfile: Dockerfile
container_name: task-management-user-service
restart: unless-stopped
ports:
- "8081:8081"
environment:
SPRING_PROFILES_ACTIVE: docker
EUREKA_SERVER_URI: http://eureka-server:8085/eureka
MONGODB_URI: mongodb://mongo:27017/users
ZIPKIN_BASE_URL: http://zipkin:9411
TASK_ALLOWED_ORIGINS: http://task-management-ui:3000,http://localhost:3000
depends_on:
mongo:
condition: service_healthy
eureka-server:
condition: service_healthy
networks:
- task-management-network
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8081/actuator/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
task-service:
build:
context: ./TaskService
dockerfile: Dockerfile
container_name: task-management-task-service
restart: unless-stopped
ports:
- "8082:8082"
environment:
SPRING_PROFILES_ACTIVE: docker
EUREKA_SERVER_URI: http://eureka-server:8085/eureka
MONGODB_URI: mongodb://mongo:27017/tasks
ZIPKIN_BASE_URL: http://zipkin:9411
depends_on:
mongo:
condition: service_healthy
eureka-server:
condition: service_healthy
networks:
- task-management-network
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8082/actuator/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
task-submission-service:
build:
context: ./TaskSubmissionService
dockerfile: Dockerfile
container_name: task-management-submission-service
restart: unless-stopped
ports:
- "8083:8083"
environment:
SPRING_PROFILES_ACTIVE: docker
EUREKA_SERVER_URI: http://eureka-server:8085/eureka
MONGODB_URI: mongodb://mongo:27017/submissions
ZIPKIN_BASE_URL: http://zipkin:9411
depends_on:
mongo:
condition: service_healthy
eureka-server:
condition: service_healthy
networks:
- task-management-network
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8083/actuator/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
api-gateway:
build:
context: ./APIGateWay
dockerfile: Dockerfile
container_name: task-management-api-gateway
restart: unless-stopped
ports:
- "8090:8090"
environment:
SPRING_PROFILES_ACTIVE: docker
EUREKA_SERVER_URI: http://eureka-server:8085/eureka
ZIPKIN_BASE_URL: http://zipkin:9411
GATEWAY_ALLOWED_ORIGIN_1: http://task-management-ui:3000
GATEWAY_ALLOWED_ORIGIN_2: http://localhost:3000
depends_on:
eureka-server:
condition: service_healthy
user-service:
condition: service_healthy
task-service:
condition: service_healthy
task-submission-service:
condition: service_healthy
networks:
- task-management-network
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:8090/actuator/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
volumes:
mongo-data:
driver: local
networks:
task-management-network:
driver: bridge
name: task-management-network