---
- name: update inception
  hosts: all
  tasks:
    - name: Stop Inception4 container if it exists
      docker_container:
        name: inception
        state: absent
    - name: Deploy Inception4 Docker container
      docker_container:
        name: inception
        image: inception:{{semaphore_vars.task_details.incoming_version}}
        state: started
        restart_policy: always
        networks:
          - name: web
          - name: inception
          - name: mongodb
        exposed_ports:
          - "3000"
        env:
          PORT: "{{ PORT }}"
          ACTION_SERVICE: "true"
          CONFIG_SERVICE: "false"
          PRODUCER_SERVICE: "true"
          QUERY_SERVICE: "true"
          RABBIT_MQ_CONSUMER: "true"
          AUTH_SERVICE: "true"
          MONGODB_URI: "{{ MONGODB_URI }}"
          ELASTICSEARCH_URI: "{{ ELASTICSEARCH_URI }}"
          RABBIT_MQ_URI: "{{ RABBIT_MQ4_URI }}"
          MINIO_URL: "{{ MINIO_URL }}"
          MINIO_ENDPOINT: "{{ MINIOS3_ENDPOINT }}"
          MINIO_PORT: "{{ MINIO_PORT }}"
          MINIO_USE_SSL: "{{ MINIO_USE_SSL }}"
          MINIO_ACCESS_KEY: "{{ MINIO_ACCESS_KEY }}"
          MINIO_SECRET_KEY: "{{ MINIO_SECRET_KEY }}"
          INCEPTION_APP: inception
        labels:
          traefik.enable: "true"
          traefik.docker.network: "web"
          traefik.http.routers.pinception.entrypoints: "web,websecure"
          traefik.http.routers.pinception.rule: "Host(`api.mvm350.ir`)"
          traefik.http.services.pinception.loadbalancer.server.port: "3000"
          traefik.http.routers.pinception.tls: "true"
          traefik.http.routers.pinception.tls.certresolver: "httpresolver"
          traefik.http.routers.pinception.service: "pinception"
          traefik.http.routers.inception.entrypoints: "web,websecure"
          traefik.http.routers.inception.rule: "Host(`i4.eron.co`) || HostRegexp(`{subdomain:[a-zA-Z0-9-]+}.i4.eron.co`)"
          traefik.http.services.inception.loadbalancer.server.port: "3000"
          traefik.http.routers.inception.tls: "true"
          traefik.http.routers.inception.tls.certresolver: "dnsresolver"
          traefik.http.routers.inception.service: "inception"
          traefik.http.routers.inception.tls.domains[0].main: "i4.eron.co"
          traefik.http.routers.inception.tls.domains[0].sans: "*.i4.eron.co"