I am trying to deploy a python app that filters my database on Redshift then inserts the aggregated rows into a new table. The insert works fine from the python script but when running the docker image it returns sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) SSL SYSCALL error: EOF detected.
According to the Sqlalchemy docs: This error is a DBAPI Error and originates from the database driver (DBAPI), not SQLAlchemy itself. 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)
Even in a try except block, e.connection_invalidated
returns true every time when running the docker image.
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 version is 1.3.5 and have set the memory available to the docker engine to 7 G.B. Any help fixing the DBAPI issue is appreciated.