DBAPI错误;SSL SYSCALL错误:运行docker imag时检测到EOF

2024-06-16 13:13:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试部署一个python应用程序,它在红移时过滤我的数据库,然后将聚合的行插入到一个新表中。在python脚本中,insert可以正常工作,但在运行docker映像时,它会返回sqlalchemy.exc.OperationalError错误:(psycopg2.OperationalError)SSL系统调用错误:检测到EOF。你知道吗

根据Sqlalchemy文档:这个错误是DBAPI错误,源于数据库驱动程序(DBAPI),而不是Sqlalchemy本身。https://docs.sqlalchemy.org/en/13/errors.html#operationalerror

def exec_query(eng,db_user,db_pw,query):
    conn = eng.connect()
        try:
            conn.execute(query)
            conn.close()
            print('Connection closed.')
        except exc.DBAPIError as e:
            if e.connection_invalidated:
                print("Connection was invalidated!")
                exec_query(eng,db_user,db_pw,query) 

即使在try-except块中,e.connection_invalidated每次运行docker映像时都返回true。你知道吗

Dockerfile文档

FROM python:3.7-alpine
WORKDIR /app
COPY . /app
RUN apk add postgresql-dev 
RUN apk add build-base
RUN pip install --trusted-host pypi.python.org -r req.txt
EXPOSE 80
ENV NAME weekly_insert
CMD ["python", "script.py"]

sqlalchemy版本是1.3.5,并且已经将docker引擎可用的内存设置为7G.B。 任何帮助解决DBAPI问题都将不胜感激。你知道吗


Tags: dockerrun数据库dbsqlalchemy错误connquery