version: '3'

services:
    nginx:
        build: ./nginx
        ports:
            - 1333:80
        depends_on:
            - web
        networks:
            - main
        volumes:
            - static_volume:/app/static
            - media_volume:/app/images
    db:
        image: postgres
        env_file: .env
        volumes:
          - pgdata:/var/lib/postgresql/data
        networks:
            - main
    web:
        build: .
        command: python manage.py runserver 0.0.0.0:8000
        volumes:
            - .:/app
            - static_volume:/app/static
            - media_volume:/app/images
        depends_on:
            - db
            - celery_worker
        networks:
            - main
        ports:
            - 8000:8000
    redis:
        image: redis
        env_file: .env
        ports:
          - "6379:6379"
        networks:
            - main
        restart: on-failure
    celery_worker:
        env_file: .env
        build: .
        networks:
            - main
        command: celery -A celerywyrm worker -l info
        volumes:
            - .:/app
            - static_volume:/app/static
            - media_volume:/app/images
        depends_on:
            - db
            - redis
        restart: on-failure
volumes:
    pgdata:
    static_volume:
    media_volume:
networks:
    main: