version: '3' services: nginx: container_name: nginx restart: always build: ./nginx image: custom/nginx volumes: - nginx1_data1:/usr/share/nginx/html - nginx1_data2:/etc/nginx links: - app - prometheus networks: - network_1 nginx2: container_name: nginx2 restart: always build: ./nginx2 image: custom/nginx2 volumes: - nginx2_data1:/usr/share/nginx/html - nginx2_data2:/etc/nginx ports: - 80:80 networks: - network_1 app: container_name: app 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: nginx1_data1: nginx1_data2: nginx2_data1: nginx2_data2: networks: network_1: ipam: driver: default config: - subnet: 192.168.5.0/24