version: "3"

networks:
  global:
    external: true

volumes:
  mongo-data:
  rabbit-data:
  redis-data:
  minio-data:

services:

  mailhog:
    image: schickling/mailcatcher:latest
    ports:
      - 1025:1025/tcp
      - 8025:1080/tcp
    networks:
      global:
      
  mongo:
#   image: skinholdings/mongo:3.6
    image: registry.gitlab.com/skinholdings/ops/dev-stacks/mongo:3.6
    deploy:
      resources:
        limits:
          memory: 1024M
        reservations:
          memory: 128M
    ports:
      - 27017:27017/tcp
    volumes:
      - mongo-data:/data/db
    networks:
      global:
        aliases:
          - common-mongo

  rabbit:
#   image: skinholdings/rabbitmq:3.7.4-management
    image: registry.gitlab.com/skinholdings/ops/dev-stacks/rabbitmq:3.7.4-management
    deploy:
      resources:
        limits:
          memory: 1024M
        reservations:
          memory: 256M
    ports:
      - 15672:15672/tcp
      - 5672:5672/tcp
      - 5673:5673/tcp
    volumes:
      - rabbit-data:/var/lib/rabbitmq
    networks:
      global:
        aliases:
          - common-rabbit

  redis:
    ports:
      - 6379:6379/tcp
#   image: redis:4.0.9-alpine
    image: registry.gitlab.com/skinholdings/ops/dev-stacks/redis:4.0.9-alpine
# Redis persistance
# https://redis.io/topics/persistence
    volumes:
      - redis-data:/data
    networks:
      global:
        aliases:
          - common-redis

  minio:
    image: minio/minio
    command: server /export
    deploy:
      restart_policy:
        delay: 10s
        max_attempts: 10
        window: 60s
    environment:
      MINIO_ACCESS_KEY: reiguth6CeePhi0gi0eeh
      MINIO_SECRET_KEY: ohghohkeileeRi3aL6Xuu
    ports:
      - 9000:9000/tcp
    volumes:
      - minio-data:/export
    networks:
      global:
        aliases:
          - common-minio

  prerender:
    image: wildsurfer/prerender:v5.3.1
    # network_mode: host
    ports:
    - 3000
    # devices:
    # - /dev/dri
    volumes:
    - /dev/shm:/dev/shm
    cap_add: 
    - SYS_ADMIN
    networks:
      - global

  payment_providers_mocks:
    image: registry.gitlab.com/skinholdings/payment-providers-mocks:latest
    ports: 
      - 32772:32772/tcp
    environment:
      PORT: 32772
      NODE_ENV: development
      TRUST_PAY_SIGN_KEY: 123456
    healthcheck:
      test:
        - CMD
        - curl
        - -f
        - http://localhost:32772/health
      interval: 20s
      timeout: 10s
      retries: 2
    networks:
      global:
