#python #sql-server #django #docker #pyodbc
Вопрос:
Я разработал приложение Django и подключил удаленный sql-сервер из приложения Django. Если я запущу его в среде anaconda, он будет работать нормально, но если я создам контейнер docker, он выдаст мне ошибку
sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('HY000', '[HY000] [Microsoft][ODBC Driver 17 for SQL Server]SSPI Provider: No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_0) (851968) (SQLDriverConnect)') (Background on this error at: http://sqlalche.me/e/dbapi)
Вот Докерфайл
FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /app
ADD . /app
COPY ./requirements.txt /app/requirements.txt
RUN apt-get update
amp;amp; apt-get -y install gcc gnupg2
amp;amp; curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
amp;amp; curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN apt-get update
amp;amp; ACCEPT_EULA=Y apt-get -y install msodbcsql17
amp;amp; ACCEPT_EULA=Y apt-get -y install mssql-tools
RUN apt-get -y install unixodbc-dev
amp;amp; apt-get -y install python-pip
amp;amp; pip install pyodbc
RUN pip install --upgrade pip
RUN pip install Django
RUN pip install python-dotenv
RUN pip install --user django-crispy-forms
RUN pip install pandas
RUN pip install SQLAlchemy
RUN pip install django-pyodbc-azure-2019
COPY . /app
Вот в чем связь
engine = create_engine('mssql pyodbc://' 'SQLserver' '/' 'database' "?" 'driver=ODBC Driver 17 for SQL Server')
Комментарии:
1. Вы установили и настроили Kerberos в среде Linux?
2. Да добавил его в файл dockerfile
ENV DEBIAN_FRONTEND=noninteractive RUN apt-get -qq update amp;amp; apt-get -yqq install krb5-user libpam-krb5 amp;amp; apt-get -yqq clean