# DEV Compose file.
# For a production file see: README.md

services:
  redis:
    image: redis:7-alpine
    # This is required to stay in RAM only.
    command: redis-server --save "" --appendonly no
    # Set a size limit. See link below on how to customise.
    # https://redis.io/docs/latest/operate/rs/databases/memory-performance/eviction-policy/
    # --maxmemory 1gb --maxmemory-policy allkeys-lrulpine
    # This prevents the creation of an anonymous volume.
    tmpfs:
      - /data
    ports:
      - 6379:6379

  app:
    build: .
    env_file: .env.dev
    depends_on:
      - redis
    restart: unless-stopped
    ports:
      - 3000:8000

    healthcheck:
      test: ['CMD', 'curl', '--fail', 'http://127.0.0.1:8000/api/live/']
      interval: 1m
      timeout: 3s
      retries: 2
      start_period: 5s