version: '3' services: nginx: image: nginx:latest ports: - 80:80 - 443:443 depends_on: - web networks: - main volumes: - ./nginx:/etc/nginx/conf.d - ./certbot/conf:/etc/nginx/ssl - ./certbot/data:/var/www/certbot - static_volume:/app/static - media_volume:/app/images certbot: image: certbot/certbot:latest command: certonly --webroot --webroot-path=/var/www/certbot --email your-email@domain.com --agree-tos --no-eff-email -d your-domain.com -d www.your-domain.com volumes: - ./certbot/conf:/etc/letsencrypt - ./certbot/logs:/var/log/letsencrypt - ./certbot/data:/var/www/certbot 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: