version: '{{ compose_version }}' services: api: image: cojedzie/api:latest networks: - "{{ ingress_network }}" - default volumes: - db_data:/var/db deploy: mode: replicated replicas: 1 labels: - traefik.enable=true - traefik.http.routers.{{ service }}-api.rule=(Host(`{{ service }}.{{ main_domain }}`) || Host(`cojedzie.pl`)) && PathPrefix(`/api/`) - traefik.http.routers.{{ service }}-api.priority=100 - traefik.http.routers.{{ service }}-api.tls=true - traefik.http.routers.{{ service }}-api.tls.certresolver=lets-encrypt - traefik.http.services.{{ service }}-api.loadbalancer.server.port=8080 update-job: image: cojedzie/api:latest command: ["console", "app:update", "--async"] networks: - default volumes: - db_data:/var/db deploy: mode: replicated replicas: 0 labels: - "swarm.cronjob.enable=true" - "swarm.cronjob.schedule={{ cojedzie_update_cron }}" restart_policy: condition: none worker: image: cojedzie/worker:latest volumes: - db_data:/var/db depends_on: - api front: image: cojedzie/front:latest networks: - "{{ ingress_network }}" - default depends_on: - api environment: - APP_GTM={{ cojedzie_gtm }} deploy: mode: replicated replicas: 1 labels: - traefik.enable=true - traefik.http.routers.{{ service }}-front.rule=Host(`{{ service }}.{{ main_domain }}`) || Host(`cojedzie.pl`) - traefik.http.routers.{{ service }}-front.tls=true - traefik.http.routers.{{ service }}-front.tls.certresolver=lets-encrypt - traefik.http.services.{{ service }}-front.loadbalancer.server.port=3000 volumes: db_data: ~