version: "3.8" services: avente_crm: image: ghcr.io/emrekirman/avente_crm:latest networks: - traefik-public - avente_internal - redis_redis_net - postgres_network deploy: replicas: 1 restart_policy: condition: on-failure placement: constraints: - node.labels.platform == prod update_config: parallelism: 1 order: start-first labels: - traefik.enable=true - traefik.http.routers.aventecrm.rule=Host(`aventecrm.emrekirman.xyz`) - traefik.http.routers.aventecrm.entrypoints=websecure - traefik.http.routers.aventecrm.tls.certresolver=myresolver - traefik.http.services.aventecrm.loadbalancer.server.port=8080 - traefik.http.routers.aventecrm.service=aventecrm perfume-detail-api: image: ghcr.io/emrekirman/avente-perfume-detail-service:latest environment: - MONGODB_URI=mongodb://admin:emre98836@mongodb:27017/perfume_db?authSource=admin deploy: replicas: 1 update_config: parallelism: 1 delay: 10s order: start-first restart_policy: condition: on-failure delay: 5s max_attempts: 3 resources: limits: cpus: '1' memory: 512M reservations: cpus: '0.25' memory: 256M networks: - mongodb_backend-net - avente_internal networks: postgres_network: external: true redis_redis_net: external: true traefik-public: external: true avente_internal: driver: overlay attachable: true mongodb_backend-net: external: true