Ошибка DBAPI;Ошибка SSL SYSCALL: EOF обнаружен при запуске образа докера - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь развернуть приложение python, которое фильтрует мою базу данных в Redshift, а затем вставляет агрегированные строки в новую таблицу.Вставка отлично работает из скрипта python, но при запуске образа докера она возвращает 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каждый раз при запуске образа докера возвращается значение 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, и для памяти механизма докера установлено значение 7ГБ Любая помощь в устранении проблемы DBAPI приветствуется.

...