version: "3.8" services: db: build: context: ./database dockerfile: Dockerfile networks: - backend-net environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 1s timeout: 5s retries: 10 machines-app: build: context: ./machines dockerfile: Dockerfile networks: - backend-net environment: - APPPORT=4000 - DBHOST=db - DBPORT=5432 - DBNAME=komponiranje - DBUSER=pero - DBPASSWORD=pero.000 - PRODUCTSAPPURL=http://proxy:10000 depends_on: db: condition: service_healthy products-app: build: context: ./products dockerfile: Dockerfile deploy: mode: replicated replicas: 2 networks: - backend-net environment: - APPPORT=4001 - DBHOST=db - DBPORT=5432 - DBNAME=komponiranje - DBUSER=pero - DBPASSWORD=pero.000 depends_on: db: condition: service_healthy proxy: image: envoyproxy/envoy:v1.28-latest networks: - frontend-net - backend-net ports: - "10000:10000" volumes: - ./proxy/envoy.yaml:/etc/envoy/envoy.yaml depends_on: - machines-app - products-app frontend-app: build: context: ./frontend dockerfile: Dockerfile args: - REACT_APP_MACHINES_API_URL=http://localhost:10000 - REACT_APP_PRODUCTS_API_URL=http://localhost:10000 networks: - frontend-net ports: - "8080:80" depends_on: - proxy networks: frontend-net: name: frontend-net internal: false backend-net: name: backend-net internal: true