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

时间:2019-09-22 11:37:47

标签: python docker amazon-redshift psycopg2 python-db-api

我正在尝试部署一个Python应用程序,该应用程序在Redshift上过滤我的数据库,然后将聚合的行插入到新表中。插入可以从python脚本正常工作,但是在运行docker映像时,它会返回 sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)SSL SYSCALL错误:检测到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) 

即使在尝试除外块中,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问题提供的任何帮助。

0 个答案:

没有答案