version: "3.3"
services:
  db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: password
  web: &web_base
    build: .
    env_file:
      - credentials.env
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/data_importer
    ports:
      - "3000:3000"
    environment:
      FAKTORY_URL: 'tcp://faktory:7419'
      FAKTORY_PROVIDER: FAKTORY_URL 
    depends_on:
      - db
  faktory:
    image: contribsys/faktory:latest
    ports:
      - "7419:7419"
      - "7420:7420"
    volumes:
      - ./tmp/faktory:/var/lib/faktory
    depends_on:
    - db
  faktory-worker:
    <<: *web_base
    command: bundle exec faktory-worker
    ports: []
    depends_on:
      - web
  faktory-cron:
    image: cdrx/faktory-cron
    command: "./faktory-cron -config /crontab.yaml"
    environment:
      FAKTORY_URL: 'tcp://faktory:7419'
    volumes:
      - ./crontab.yaml:/crontab.yaml
    depends_on:
      - faktory