Я пытаюсь развернуть приложение 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 приветствуется.