Я докертизировал мое приложение python. Это приложение подключается к базе данных Oracle, извлекает 10 строк из таблицы и генерирует Excel. Я смог построить свой образ успешно со всеми зависимыми библиотеками, и он также работает нормально. Теперь я не уверен, как получить сгенерированный файл Excel ( batchtable.xlsx ) в docker. Я новичок в docker и мне нужно ваше предложение. Я проверил вывод без сохранения записей в Excel, и он отлично работает на консоли, поэтому нет проблем с кодом.
Dockerfile
FROM python:3.7.4-slim-buster
RUN apt-get update && apt-get install -y libaio1 wget unzip
WORKDIR /opt/oracle
COPY File.py /opt/oracle
RUN wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip && \
unzip instantclient-basiclite-linuxx64.zip && rm -f instantclient-basiclite-linuxx64.zip && \
cd /opt/oracle/instantclient* && rm -f *jdbc* *occi* *mysql* *README *jar uidrvci genezi adrci && \
echo /opt/oracle/instantclient* > /etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig
RUN python -m pip install --upgrade pip
RUN python -m pip install cx_Oracle
RUN python -m pip install pandas
RUN python -m pip install openpyxl
CMD [ "python", "/opt/oracle/File.py" ]
File.py
import cx_Oracle
import pandas as pd
#creating database connection
dsn_tns = cx_Oracle.makedsn('dev-tr01.com', '1222', service_name='ast041.com')
conn = cx_Oracle.connect(user=r'usr', password='3451', dsn=dsn_tns)
c = conn.cursor()
query ='SELECT * FROM Employee WHERE ROWNUM <10'
result = pd.read_sql(query, con=conn)
result.to_excel("batchtable.xlsx")
conn.close()