version: '3.8'

services:

  fittrackee-db:
    container_name: fittrackee-db
    build: ./db
    ports:
      - "5435:5432"
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
    volumes:
      - ./data/db:/var/lib/postgresql/data
    networks:
      - fittrackee-net
  
  fittrackee:
    container_name: fittrackee
    build: .
    ports:
      - "5000:5000"
    env_file:
      - .env
    depends_on:
      - fittrackee-db
      - redis
      - mail
    volumes:
      - .:/usr/src/app
      - ./data/workouts:/usr/src/app/workouts
      - ./data/uploads:/usr/src/app/uploads
    networks:
      - fittrackee-net

  fittrackee_client:
    container_name: fittrackee_client
    environment:
      - NODE_ENV=development
      - VUE_APP_API_URL=http://localhost:5000
    build:
      context: ./fittrackee_client
    volumes:
      - ./fittrackee_client:/usr/src/app
      - /usr/src/app/node_modules
    depends_on:
      - fittrackee
    ports:
      - "3000:3000"
    stdin_open: true
    tty: true
    command: /bin/sh

  redis:
    container_name: fittrackee-redis
    image: "redis:latest"
    hostname: redis
    ports:
      - "6379:6379"
    networks:
      - fittrackee-net

  mail:
    container_name: fittrackee-mailhog
    image: "mailhog/mailhog"
    ports:
      - "1025:1025"
      - "8025:8025"
    networks:
      - fittrackee-net

  selenium:
    image: selenium/standalone-firefox:latest
    hostname: selenium
    privileged: true
    shm_size: 2g

networks:
  fittrackee-net: