version: "3.8"

volumes:
  righttree-postgres-data:
    name: righttree-postgres-data

services:
  backend:
    restart: always
    build:
      context: backend
      dockerfile: Dockerfile
    container_name: backend
    depends_on:
      - postgres
    env_file: .env
    ports:
      - "8000:8000"
    command: bash -c "gunicorn --bind 0.0.0.0:8000 right_tree.wsgi"

  nginx:
    container_name: nginx
    restart: always
    image: nginx
    depends_on:
      - postgres
      - backend
    volumes:
      - ./nginx.production.conf:/etc/nginx/nginx.conf
      - ./backend/right_tree/staticfiles:/etc/nginx/html/staticfiles
      - ./frontend/build:/etc/nginx/html/build
      - /etc/letsencrypt:/etc/letsencrypt
    ports:
      - "80:80"
      - "443:443"

  postgres:
    image: postgis/postgis:13-3.0
    restart: always
    container_name: postgres
    volumes:
      - righttree-postgres-data:/var/lib/postgresql/data
      - ./create_database.sql:/docker-entrypoint-initdb.d/create_database.sql
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

