version: '3.4' x-studio-environment: &studio-environment MPLBACKEND: ps SHELL: /bin/bash AWS_S3_ENDPOINT_URL: http://minio:9000 AWS_BUCKET_NAME: content DATA_DB_HOST: postgres DJANGO_SETTINGS_MODULE: contentcuration.dev_settings RUN_MODE: docker-compose CELERY_TIMEZONE: America/Los_Angeles CELERY_REDIS_DB: 0 CELERY_BROKER_ENDPOINT: redis CELERY_RESULT_BACKEND_ENDPOINT: redis CELERY_REDIS_PASSWORD: "" PROBER_STUDIO_BASE_URL: http://studio-app:8080/{path} x-studio-worker: &studio-worker build: context: . dockerfile: docker/Dockerfile.dev image: learningequality/studio-app-dev depends_on: - minio - postgres - redis volumes: - .:/src environment: *studio-environment services: studio-nginx: platform: linux/amd64 build: context: . dockerfile: k8s/images/nginx/Dockerfile ports: - "8081:8080" depends_on: - studio-app environment: *studio-environment studio-app: <<: *studio-worker entrypoint: python docker/entrypoint.py command: pnpm run devserver ports: - "8080:8080" - "4000:4000" celery-worker: <<: *studio-worker command: make prodceleryworkers # this service is for development emulation only minio: image: 'bitnami/minio:2024.5.28' environment: - "MINIO_DEFAULT_BUCKETS=content:public" - MINIO_ROOT_USER=development - MINIO_ROOT_PASSWORD=development ports: - "9000:9000" volumes: - minio:/bitnami/minio/data postgres: image: ghcr.io/learningequality/postgres build: context: ./docker dockerfile: Dockerfile.postgres.dev environment: PGDATA: /var/lib/postgresql/data/pgdata POSTGRES_USER: learningequality POSTGRES_PASSWORD: kolibri POSTGRES_DB: kolibri-studio volumes: - pgdata:/var/lib/postgresql/data/pgdata - .docker/postgres:/docker-entrypoint-initdb.d redis: image: redis:6.0.9 cloudprober: <<: *studio-worker working_dir: /src/deploy entrypoint: "" # sleep 30 seconds allowing some time for the studio app to start up command: '/bin/bash -c "sleep 30 && /bin/cloudprober --config_file ./cloudprober.cfg"' # wait until the main app and celery worker have started depends_on: - studio-app - celery-worker volumes: minio: pgdata: