services:
  haproxy:
    image: reg.cadoles.com/proxy_cache/library/haproxy:2.7-alpine
    ports:
      - 8080:8080
    links:
      - bouncer-proxy-1
      - bouncer-proxy-2
      - bouncer-proxy-3
    volumes:
      - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg

  bouncer-admin:
    image: reg.cadoles.com/cadoles/bouncer:latest
    command: bouncer -c /etc/bouncer/config.yml server admin run
    links:
      - redis
    volumes:
      - ./bouncer/config.yml:/etc/bouncer/config.yml
      - ./bouncer/admin-key.json:/etc/bouncer/admin-key.json

  bouncer-proxy-1: &bouncer-proxy
    image: reg.cadoles.com/cadoles/bouncer:latest
    command: bouncer -c /etc/bouncer/config.yml server proxy run
    links:
      - redis
    volumes:
      - ./bouncer/config.yml:/etc/bouncer/config.yml
      - ./bouncer/admin-key.json:/etc/bouncer/admin-key.json

  bouncer-proxy-2: *bouncer-proxy
  bouncer-proxy-3: *bouncer-proxy

  redis:
    image: reg.cadoles.com/proxy_cache/library/redis:7-alpine
    command: redis-server --save 60 1 --loglevel verbose
    volumes:
      - redis-data:/data

volumes:
  redis-data: