version: '3'
services:

  pg-pq:
    image: postgres:9.6-alpine
    ports:
      - "5432"
    environment:
      POSTGRES_USER: test
      POSTGRES_PASSWORD: test
      POSTGRES_DB: test
    healthcheck:
      test: [ "CMD", "pg_isready" ]
      interval: 10s
      timeout: 5s
      retries: 5

  pg-pgx4:
    image: postgres:9.6-alpine
    ports:
      - "5432"
    environment:
      POSTGRES_USER: test
      POSTGRES_PASSWORD: test
      POSTGRES_DB: test
    healthcheck:
      test: [ "CMD", "pg_isready" ]
      interval: 10s
      timeout: 5s
      retries: 5

  rabbit:
    image: rabbitmq:3.6-management-alpine
    ports:
      - "5672"
      - "15672"
    healthcheck:
      test: [ "CMD", "rabbitmqctl", "status" ]
      interval: 10s
      timeout: 5s
      retries: 5

  redis:
    image: redis:3.2-alpine
    ports:
      - "6379"
    healthcheck:
      test: [ "CMD", "redis-cli", "ping" ]
      interval: 10s
      timeout: 5s
      retries: 5

  mongo:
    image: mongo:3
    ports:
      - "27017"
    healthcheck:
      test: "mongo localhost:27017/test --quiet --eval 'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'"
      interval: 10s
      timeout: 5s
      retries: 5

  mysql:
    image: mysql:5.7
    ports:
      - "3306"
    environment:
      MYSQL_ROOT_PASSWORD: test
      MYSQL_DATABASE: test
      MYSQL_USER: test
      MYSQL_PASSWORD: test
    healthcheck:
      test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
      interval: 10s
      timeout: 5s
      retries: 5

  memcached:
    image: memcached:1.6.9-alpine
    ports:
      - "11211"

  http:
    image: pierreprinetti/apimock:latest
    ports:
      - "8080"
    environment:
      HOST: ":8080"