version: "3.8" services: db: image: postgres:12-alpine restart: on-failure volumes: - postgres-data:/var/lib/postgresql/data environment: POSTGRES_USER: plane POSTGRES_DB: plane POSTGRES_PASSWORD: plane command: postgres -c 'max_connections=1000' redis: image: redis:6.2.7-alpine restart: on-failure command: redis-server --maxmemory-policy allkeys-lru --maxmemory 200mb plane-web: image: plane-web container_name: plane-frontend build: context: . dockerfile: ./apps/app/Dockerfile.web restart: always environment: NEXT_PUBLIC_GITHUB_ID: $NEXT_PUBLIC_GITHUB_ID NEXT_PUBLIC_GOOGLE_CLIENTID: $NEXT_PUBLIC_GOOGLE_CLIENTID NEXT_PUBLIC_API_BASE_URL: $NEXT_PUBLIC_API_BASE_URL ports: - 3000:3000 plane-api: image: plane-api container_name: plane-backend build: context: ./apiserver dockerfile: Dockerfile.api restart: always ports: - 8000:8000 environment: SENTRY_DSN: $SENTRY_DSN WEB_URL: $WEB_URL PGUSER: plane PGPASSWORD: plane PGHOST: db REDIS_URL: 'redis://redis:6379/' REDIS_HOST: redis REDIS_PORT: 6379 SECRET_KEY: $SECRET_KEY AWS_REGION: $AWS_REGION AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_S3_BUCKET_NAME: $AWS_S3_BUCKET_NAME EMAIL_HOST: $EMAIL_HOST EMAIL_HOST_USER: $EMAIL_HOST_USER EMAIL_HOST_PASSWORD: $EMAIL_HOST_PASSWORD depends_on: - db - redis command: ./bin/takeoff links: - db - redis plane-worker: image: plane-api depends_on: - redis command: python manage.py rqworker links: - redis environment: SENTRY_DSN: $SENTRY_DSN WEB_URL: $WEB_URL PGUSER: plane PGPASSWORD: plane PGHOST: db REDIS_URL: 'redis://redis:6379/' REDIS_HOST: redis REDIS_PORT: 6379 SECRET_KEY: $SECRET_KEY AWS_REGION: $AWS_REGION AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY AWS_S3_BUCKET_NAME: $AWS_S3_BUCKET_NAME EMAIL_HOST: $EMAIL_HOST EMAIL_HOST_USER: $EMAIL_HOST_USER EMAIL_HOST_PASSWORD: $EMAIL_HOST_PASSWORD volumes: postgres-data: