version: '3' services: nginx: container_name: nginx deploy: replicas: 3 restart: always build: ./nginx image: custom/nginx volumes: - nginx_data1:/usr/share/nginx/html - nginx_data2:/etc/nginx ports: - 3002:80 networks: - network_1 app: container_name: app deploy: replicas: 6 build: ./node image: custom/node volumes: - app_data:/www ports: - 3001:3001 networks: - network_1 mongo: container_name: mongo build: ./mongo image: custom/mongo volumes: - mongo_data:/data/db environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: ruth networks: - network_1 ports: - 27017:27017 prometheus: container_name: prometheus image: prom/prometheus:latest volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prom_data:/prometheus networks: - network_1 ports: - 9090:9090 grafana: container_name: grafana image: grafana/grafana volumes: - grafana_data:/var/lib/grafana networks: - network_1 ports: - 3000:3000 volumes: app_data: mongo_data: grafana_data: prom_data: nginx_data1: nginx_data2: networks: network_1: ipam: driver: default config: - subnet: 192.168.5.0/24