Ошибка при запуске кода python через изображение docker

#docker #dockerfile #pyodbc #docker-image #python-3.9

Вопрос:

У меня есть код на python, который отлично работает для извлечения данных из API, но у меня возникают проблемы с его запуском через docker. Я использую pyodbc для загрузки данных в SQLServer в своем коде python. Вот мой док-файл:

 FROM python:3.9.2

RUN apt-get update -y amp;amp; apt-get install -y --no-install-recommends 
    unixodbc-dev 
    unixodbc 
    libpq-dev 

WORKDIR /app

COPY requirements.txt requirements.txt

RUN pip3 install -r requirements.txt

COPY . .

CMD ["python3","LoadAPI_data.py"]
 

После создания образа docker, когда я пытаюсь запустить образ docker, я получаю следующую ошибку:

Ошибка!!!!: (‘01000’, «[01000] [unixODBC][Диспетчер драйверов]Не удается открыть библиотеку ‘Драйвер ODBC 17 для SQL Server’ : файл не найден (0) (SQLDriverConnect)»)

Может ли кто-нибудь сообщить мне, как мне избавиться от этой ошибки?

Комментарии:

1. Вам необходимо установить собственные драйверы SQL-сервера. Эта статья от MS должна помочь: docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/…

2. @Mureinik, Спасибо за помощь, но это не решило проблему. У меня уже были установлены и связаны файлы odbc. Я все еще сталкиваюсь с той же проблемой при попытке запустить свой код через docker.

Ответ №1:

Я смог запустить свой код, обновив файл dockerfile для запуска установки базы данных SQL, а также python. Вот как выглядит мой новый файл dockerfile.

 FROM ubuntu:18.04

RUN apt-get update -y amp;amp;       
    apt-get install -y     
    libpq-dev      
    gcc 
    python3-pip 
    unixodbc-dev

RUN apt-get update amp;amp; apt-get install -y 
    curl apt-utils apt-transport-https debconf-utils gcc build-essential g  -5
    amp;amp; rm -rf /var/lib/apt/lists/*

RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated msodbcsql17

RUN pip3 install pyodbc

WORKDIR /app

COPY requirements.txt requirements.txt


RUN pip3 install -r requirements.txt

COPY . .

CMD ["python3","LoadAPI_data.py"]