services: web: container_name: web build: context: . dockerfile: ./web/Dockerfile.web args: DOCKER_BUILDKIT: 1 restart: always command: node web/server.js web depends_on: - api admin: container_name: admin build: context: . dockerfile: ./admin/Dockerfile.admin args: DOCKER_BUILDKIT: 1 restart: always command: node admin/server.js admin depends_on: - api - web space: container_name: space build: context: . dockerfile: ./space/Dockerfile.space args: DOCKER_BUILDKIT: 1 restart: always command: node space/server.js space depends_on: - api - web api: container_name: api build: context: ./apiserver dockerfile: Dockerfile.api args: DOCKER_BUILDKIT: 1 restart: always command: ./bin/takeoff env_file: - ./apiserver/.env depends_on: - plane-db - plane-redis worker: container_name: bgworker build: context: ./apiserver dockerfile: Dockerfile.api args: DOCKER_BUILDKIT: 1 restart: always command: ./bin/worker env_file: - ./apiserver/.env depends_on: - api - plane-db - plane-redis beat-worker: container_name: beatworker build: context: ./apiserver dockerfile: Dockerfile.api args: DOCKER_BUILDKIT: 1 restart: always command: ./bin/beat env_file: - ./apiserver/.env depends_on: - api - plane-db - plane-redis migrator: container_name: plane-migrator build: context: ./apiserver dockerfile: Dockerfile.api args: DOCKER_BUILDKIT: 1 restart: no command: > sh -c "python manage.py wait_for_db && python manage.py migrate" env_file: - ./apiserver/.env depends_on: - plane-db - plane-redis plane-db: container_name: plane-db image: postgres:15.2-alpine restart: always command: postgres -c 'max_connections=1000' volumes: - pgdata:/var/lib/postgresql/data env_file: - .env environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_DB: ${POSTGRES_DB} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} PGDATA: /var/lib/postgresql/data plane-redis: container_name: plane-redis image: redis:7.2.4-alpine restart: always volumes: - redisdata:/data plane-minio: container_name: plane-minio image: minio/minio restart: always command: server /export --console-address ":9090" volumes: - uploads:/export environment: MINIO_ROOT_USER: ${AWS_ACCESS_KEY_ID} MINIO_ROOT_PASSWORD: ${AWS_SECRET_ACCESS_KEY} # Comment this if you already have a reverse proxy running proxy: container_name: proxy build: context: ./nginx dockerfile: Dockerfile restart: always ports: - ${NGINX_PORT}:80 environment: FILE_SIZE_LIMIT: ${FILE_SIZE_LIMIT:-5242880} BUCKET_NAME: ${AWS_S3_BUCKET_NAME:-uploads} depends_on: - web - api - space - admin volumes: pgdata: redisdata: uploads: