services:
  db:
    image: postgres:10.19
    restart: always
    environment:
      POSTGRES_PASSWORD: f00d
      POSTGRES_USER: ofn
      POSTGRES_DB: open_food_network_dev
    ports:
      - 5432:5432
    volumes:
      - 'postgres:/var/lib/postgresql/data'
  redis:
    image: redis
  web:
    tty: true
    stdin_open: true
    build: .
    ports:
      - 3000:3000
      - 3035:3035
    volumes:
      - .:/usr/src/app
      - gems:/bundles
      - ./config/database.yml:/usr/src/app/config/database.yml
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      - db
      - redis
    environment:
      DOCKER: true
      OFN_DB_HOST: db
      OFN_REDIS_URL: redis://redis/
      OFN_REDIS_JOBS_URL: redis://redis
      OFN_REDIS_TEST_URL: redis://redis/3
    command: >
      bash -c "rm -f tmp/pids/server.pid &&
               (bundle check || bundle install) &&
               bundle exec rake db:create &&
               yarn install &&
               bundle exec foreman start -f Procfile.docker"
volumes:
  gems:
  postgres:
