I’m running a Python script (sharepoint_to_json.py) inside a Docker container that connects to a SQL Server database using the ODBC driver. My goal is to convert data from an Excel (.xlsx) file into JSON format within my server, using the sharepoint_to_json.py script. This process should run inside the Docker container after establishing a connection to a SQL Server database.
I have already installed the msodbcsql17 driver in the container, and my connection to the database works when running other scripts. However, when I try to run the sharepoint_to_json.py script, I encounter the following error:
Ocorreu um erro ao processar o arquivo Excel: (‘01000’, "[01000] [unixODBC][Driver Manager]Can’t open lib ‘/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.9.so.1.1’ : file not found (0) (SQLDriverConnect)")
Here’s the relevant part of my Dockerfile:
FROM python:3.12
RUN apt-get update && apt-get install -y
curl
gnupg2
apt-transport-https
unixodbc
unixodbc-dev
python3-distutils
build-essential
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add –
&& curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list
&& apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql17
Set the working directory in the container
WORKDIR /app
Upgrade pip, setuptools, wheel to ensure the latest versions
RUN pip install –upgrade pip setuptools wheel
Copy the requirements.txt file
COPY requirements.txt .
Install the dependencies
RUN pip install -r requirements.txt
Copy the project files
COPY . /app/
Expose port 8000
EXPOSE 8000
Set environment variable to indicate that Django is running in the container
ENV PYTHONUNBUFFERED 1
Default command
CMD ["sh", "-c", "python wait_for_db.py && python manage.py makemigrations && python manage.py migrate && python test_connection.py && python sharepoint_to_json.py && python manage.py runserver 0.0.0.0:8000"]
I verified that the msodbcsql17 driver is installed correctly in the container.
I checked the path /opt/microsoft/msodbcsql17/lib64/, but the file libmsodbcsql-17.9.so.1.1 does not seem to exist.
I ensured that my odbcinst.ini is properly configured.
My Questions:
Why does the driver seem to work for other scripts but fail for this particular one (sharepoint_to_json.py)?
How can I fix the missing file error in my Docker setup?
Is there a better way to verify if the ODBC driver is correctly installed and recognized within the container?
Any guidance would be greatly appreciated!
You need to sign in to view this answers