-1

我正在用 quart 制作一个 api,它基于 python 中的 aiohttp 及其异步库,当我在本地运行 api 时,一切运行正常,但如果我在 docker 上运行它,它会在端点上出现错误

api_1  |   File "asyncpg/protocol/protocol.pyx", line 301, in query
api_1  |   File "asyncpg/protocol/protocol.pyx", line 664, in asyncpg.protocol.protocol.BaseProtocol._check_state
api_1  | asyncpg.exceptions._base.InterfaceError: cannot perform operation: another operation is in progress

这是在本地工作正常的端点上

Dockerfile

FROM python:3.8-slim

# left to be done after project structure
WORKDIR /app

ADD . /app

RUN pip install pipenv
RUN pipenv install --system --deploy
CMD python launch.py initdb
CMD sh /app/runfile.sh

运行文件.sh

hypercorn launch:app -b 0.0.0.0:5000

应用建议的更改后的 Dockerfile

FROM python:3.8-alpine

# left to be done after project structure
WORKDIR /app

ADD . /app

RUN apk add gcc python3-dev musl-dev

RUN pip install pipenv
RUN pipenv install --system --deploy
CMD python launch.py initdb
CMD sh /app/runfile.sh
4

1 回答 1

0

我找到了解决方案。问题是池中缺少连接。acquire()因此,如上所述,使用 like 等待连接。

于 2020-12-15T05:53:32.327 回答