version: '3'

services:
  app:
    image: jftanner/maelstrom
    container_name: maelstrom_app
    restart: unless-stopped
    ports:
      - 8080:8080
    environment:
      - NODE_ENV=production
      - PORT=8080
      - REDIS_URL=redis://redis
      - COUCH_URL=http://couchdb
    depends_on:
      - redis
      - couchdb

  couchdb:
    image: couchdb
    container_name: maelstrom_couch
    restart: unless-stopped
    volumes:
      - couchdb-data:/opt/couchdb/data
      - couchdb-config:/opt/couchdb/etc
    ports:
      - 127.0.0.1:5984:5984
    expose:
      - 5984


  redis:
    image: redis
    container_name: maelstrom_redis
    restart: unless-stopped
    volumes:
      - redis-data:/data
    ports:
      - 127.0.0.1:6379:6379
    expose:
      - 6379

volumes:
  redis-data:
  couchdb-data:
  couchdb-config:
