# See docs.getsentry.com/on-premise/server/ for full
# instructions

version: '2'
services:
  base:
    build: .
    environment:
      # Run `docker-compose run web config generate-secret-key`
      # to get the SENTRY_SECRET_KEY value.
      # SENTRY_SECRET_KEY: ''
      SENTRY_MEMCACHED_HOST: memcached
      SENTRY_REDIS_HOST: redis
      SENTRY_POSTGRES_HOST: postgres
      SENTRY_EMAIL_HOST: smtp
    volumes:
      - ./data/sentry:/var/lib/sentry/files

  smtp:
    image: tianon/exim4

  memcached:
    image: memcached:1.4

  redis:
    image: redis:3.2-alpine

  postgres:
    image: postgres:9.5
    volumes:
      - ./data/postgres:/var/lib/postgresql/data

  web:
    extends: base
    links:
      - redis
      - postgres
      - memcached
      - smtp
    ports:
      - '9000:9000'

  cron:
    extends: base
    command: run cron
    links:
      - redis
      - postgres
      - memcached
      - smtp

  worker:
    extends: base
    command: run worker
    links:
      - redis
      - postgres
      - memcached
      - smtp
