@werrrrrrr

TypeError: FastAPI.__call__() missing 1 positional argument: ‘send’?

Пытаюсь задеплоить FastAPI приложение. Вот `Dockerfile`:

FROM python:3.12
RUN mkdir /webapp
WORKDIR /webapp
COPY requirements.txt .
RUN pip3 install --upgrade setuptools
RUN pip3 install -r requirements.txt
COPY . .
CMD gunicorn api:app --bind 0.0.0.0:8000 --worker-class uvicorn.workers.UvicornWorker

```
И `docker-compose`:
```
services:
  mongo:
    image: mongo
    container_name: mongodb
    ports:
      - 5858:5858

  webapp:
    build: 
      context: ./webapp/.
    container_name: webapp
    ports:
      - 9999:8000
    depends_on:
      - mongo

  bot:
    build: ./bot/.
    image: pauliness1/messager-bot:latest
    command: sh -c "python3 -m run"
    env_file:
      - ./bot/.env
    restart: always
    depends_on:
      - webapp

  server:
    image: nginx
    depends_on:
      - webapp
      - bot
    ports:
      - 1100:80

```
Но когда перехожу на localhost:9999 вылезает ошибка:
TypeError: FastAPI.__call__() missing 1 required positional argument: 'send'.

Посмотрел логи, вижу, что используется sync worker:
webapp    | [2024-08-04 11:52:04 +0000] [6] [INFO] Using worker: sync.

А wsgi нельзя использовать с FastAPI, только asgi. Но я же вроде прописал в Dockerfile строку uvicorn.workers.UvicornWorker. Так должно работать? А воркер все равно синхронный подключается... что я делаю не так?
  • Вопрос задан
  • 237 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы