version: '3.8' services: json-server: image: presence-tracker-api:latest ports: - "3001:3001" volumes: - json-data:/data networks: - presence-network deploy: replicas: 1 restart_policy: condition: on-failure delay: 5s max_attempts: 3 placement: constraints: - node.role == worker nextjs: image: presence-tracker-web:latest ports: - "3000:3000" environment: - API_URL=http://json-server:3001 networks: - presence-network deploy: replicas: 2 restart_policy: condition: on-failure delay: 5s max_attempts: 3 update_config: parallelism: 1 delay: 10s placement: constraints: - node.role == worker depends_on: - json-server volumes: json-data: driver: local networks: presence-network: driver: overlay