version: "3.8" networks: dev_env: driver: bridge volumes: redisdata: uploads: pgdata: services: plane-redis: container_name: plane-redis image: redis:6.2.7-alpine restart: unless-stopped networks: - dev_env volumes: - redisdata:/data plane-minio: container_name: plane-minio image: minio/minio restart: unless-stopped networks: - dev_env command: server /export --console-address ":9090" volumes: - uploads:/export env_file: - .env environment: MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID} MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY} plane-db: container_name: plane-db image: postgres:15.2-alpine restart: unless-stopped networks: - dev_env command: postgres -c 'max_connections=1000' volumes: - pgdata:/var/lib/postgresql/data env_file: - .env environment: POSTGRES_USER: ${PGUSER} POSTGRES_DB: ${PGDATABASE} POSTGRES_PASSWORD: ${PGPASSWORD} PGDATA: /var/lib/postgresql/data web: container_name: web build: context: . dockerfile: ./web/Dockerfile.dev restart: unless-stopped networks: - dev_env volumes: - .:/app command: yarn dev --filter=web env_file: - ./web/.env depends_on: - api - worker space: build: context: . dockerfile: ./space/Dockerfile.dev container_name: space restart: unless-stopped networks: - dev_env volumes: - .:/app command: yarn dev --filter=space env_file: - ./space/.env depends_on: - api - worker - web api: container_name: api build: context: ./apiserver dockerfile: Dockerfile.dev args: DOCKER_BUILDKIT: 1 restart: unless-stopped networks: - dev_env volumes: - ./apiserver:/code command: /bin/sh -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000 --settings=plane.settings.local" env_file: - ./apiserver/.env depends_on: - plane-db - plane-redis worker: container_name: bgworker build: context: ./apiserver dockerfile: Dockerfile.dev args: DOCKER_BUILDKIT: 1 restart: unless-stopped networks: - dev_env volumes: - ./apiserver:/code command: /bin/sh -c "celery -A plane worker -l info" env_file: - ./apiserver/.env depends_on: - api - plane-db - plane-redis beat-worker: container_name: beatworker build: context: ./apiserver dockerfile: Dockerfile.dev args: DOCKER_BUILDKIT: 1 restart: unless-stopped networks: - dev_env volumes: - ./apiserver:/code command: /bin/sh -c "celery -A plane beat -l info" env_file: - ./apiserver/.env depends_on: - api - plane-db - plane-redis proxy: container_name: proxy build: context: ./nginx dockerfile: Dockerfile restart: unless-stopped networks: - dev_env ports: - ${NGINX_PORT}:80 env_file: - .env environment: FILE_SIZE_LIMIT: ${FILE_SIZE_LIMIT:-5242880} BUCKET_NAME: ${AWS_S3_BUCKET_NAME:-uploads} depends_on: - web - api - space