services: nginx: image: nginx:1.17 volumes: - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf ports: - 8000:80 # same port (8000) must be used as WDS_SOCKET_PORT in frontend/package.json depends_on: - backend - frontend redis: image: redislabs/redistimeseries ports: - 6379:6379 volumes: - redis-data:/data postgres: image: postgres:12 restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password POSTGRES_HOST_AUTH_METHOD: trust ports: - "5432:5432" volumes: - db-data:/var/lib/postgresql/data:cached flower: image: mher/flower command: celery --broker=redis://redis:6379/0 flower --port=5555 ports: - 5555:5555 depends_on: - redis - worker worker: build: context: backend dockerfile: Dockerfile command: celery --app app.tasks worker --uid unit --beat --loglevel=WARNING -Q main-queue -E -s /tmp/celerybeat-schedule volumes: - ./backend:/app/:cached depends_on: - redis backend: container_name: beo_backend build: context: backend dockerfile: Dockerfile tty: true volumes: - ./backend:/app/:cached # ports: # - 8888:8888 environment: DATABASE_URI: "postgresql+asyncpg://postgres:password@postgres:5432/postgres" CELERY_BROKER: "redis://redis:6379/0" PORT: 8888 LOG_LEVEL: "WARNING" # for custom async logger, uvicorn log setup in run.sh # comment out `command` for production command: bash app/run.sh depends_on: - postgres - redis frontend: container_name: beo_frontend build: context: frontend dockerfile: Dockerfile stdin_open: true # ports: # - 3000:3000 volumes: - "./frontend:/app:cached" environment: NODE_ENV: "development" REACT_APP_API_BASE_PATH: "/api" REACT_APP_MODE: "development" command: bash /app/run.sh start volumes: db-data: driver: local redis-data: {}