Докер не работает с ODBC драйвером для MS SQL Server
Не работает ODBC DRIVER в докер - контейнере. Я перепробовал все, что мне доступно. Установил драйвер в образ, установил драйвер в среду Ubuntu, указал путь к ODBC драйверу при создании образа. Драйвер установлен и проверяется. При запуске контейнера выдает следующую ошибку:
ERROR:modules:connection is failed because ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)") ERROR:modules:error occured in managers name 'conn' is not defined
При локальном запуске, код запускается без ошибок Докерфайл:
WORKDIR /usr/src/app
COPY . /usr/src/app
COPY requirements.txt .
RUN apt-get update
RUN apt-get update && \
apt-get install -y unixodbc unixodbc-dev
ENV LD_LIBRARY_PATH=opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.10.so.6.1:$LD_LIBRARY_PATH
ENV ODBC_DRIVER_PATH = opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.10.so.6.1:
RUN pip install -r requirements.txt
EXPOSE 1433
CMD ["python", "main.py"]
Подключение:
ms_server =
ms_database =
ms_username =
ms_password =
object = MSSQL(ms_server, ms_database, ms_username, ms_password)
conn = object.connect()
Файл для подключения к бд:
import pyodbc
from singletone import singletone
@singletone
class MSSQL():
"""Класс для управления бд MSSQL"""
def __init__(self, server, database, user, password):
self.server = server
self.database = database
self.user = user
self.password = password
def connect(self):
"""Функция для соединения с бд"""
conn = pyodbc.connect(
'DRIVER={ODBC Driver 17 for SQL Server};SERVER=' + self.server + ';DATABASE=' + self.database + ';UID=' + self.user + ';PWD=' + self.password)
return conn
def close(self):
"""Функция для закрытия соединения с бд"""
return self.connect().close()