version: "3.8" services: django: build: . container_name: django command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/usr/src/app/ ports: - "8000:8000" environment: - DEBUG=1 - DJANGO_SECRET_KEY=${DJANGO_SECRET_KEY} - DJANGO_ALLOWED_HOSTS=${DJANGO_ALLOWED_HOSTS} - CELERY_BROKER=${CELERY_BROKER} - CELERY_BACKEND=${CELERY_BACKEND} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_HOST=${POSTGRES_HOST} - POSTGRES_PORT=${POSTGRES_PORT} - S3_AWS_ACCESS_KEY_ID=${S3_AWS_ACCESS_KEY_ID} - S3_AWS_SECRET_ACCESS_KEY=${S3_AWS_SECRET_ACCESS_KEY} - AWS_S3_REGION_NAME=${AWS_S3_REGION_NAME} - AWS_STORAGE_BUCKET_NAME=${AWS_STORAGE_BUCKET_NAME} depends_on: - pgdb - redis - elasticsearch networks: - pharaoh elasticsearch: image: elasticsearch:7.14.0 volumes: - ./data/elastic:/var/lib/elasticsearch/data environment: - discovery.type=single-node ports: - 9200:9200 networks: - pharaoh celery: build: . command: celery -A core worker -l INFO volumes: - .:/usr/src/app environment: - DEBUG=1 - DJANGO_SECRET_KEY=${DJANGO_SECRET_KEY} - DJANGO_ALLOWED_HOSTS=${DJANGO_ALLOWED_HOSTS} - CELERY_BROKER=${CELERY_BROKER} - CELERY_BACKEND=${CELERY_BACKEND} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_HOST=${POSTGRES_HOST} - POSTGRES_PORT=${POSTGRES_PORT} - S3_AWS_ACCESS_KEY_ID=${S3_AWS_ACCESS_KEY_ID} - S3_AWS_SECRET_ACCESS_KEY=${S3_AWS_SECRET_ACCESS_KEY} - AWS_S3_REGION_NAME=${AWS_S3_REGION_NAME} - AWS_STORAGE_BUCKET_NAME=${AWS_STORAGE_BUCKET_NAME} depends_on: - django - redis networks: - pharaoh celery-beat: build: . command: celery -A core beat -l INFO volumes: - .:/usr/src/app environment: - DEBUG=1 - DJANGO_SECRET_KEY=${DJANGO_SECRET_KEY} - DJANGO_ALLOWED_HOSTS=${DJANGO_ALLOWED_HOSTS} - CELERY_BROKER=${CELERY_BROKER} - CELERY_BACKEND=${CELERY_BACKEND} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_HOST=${POSTGRES_HOST} - POSTGRES_PORT=${POSTGRES_PORT} - S3_AWS_ACCESS_KEY_ID=${S3_AWS_ACCESS_KEY_ID} - S3_AWS_SECRET_ACCESS_KEY=${S3_AWS_SECRET_ACCESS_KEY} - AWS_S3_REGION_NAME=${AWS_S3_REGION_NAME} - AWS_STORAGE_BUCKET_NAME=${AWS_STORAGE_BUCKET_NAME} depends_on: - django - redis networks: - pharaoh pgdb: image: postgres container_name: pgdb environment: - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_HOST=${POSTGRES_HOST} - POSTGRES_PORT=${POSTGRES_PORT} - "POSTGRES_HOST_AUTH_METHOD=trust" volumes: - pgdata:/var/lib/postgresql/data/ networks: - pharaoh redis: image: "redis:alpine" volumes: pgdata: networks: pharaoh: driver: bridge