Докеризация проекта Django с Gunicorn и MSSQL - Не удалось войти в систему для пользователя "myuser"
Может кто-нибудь подсказать мне, как докеризировать проект django с помощью mssql и gunicorn? Я пытаюсь сделать это уже несколько дней, но после каждого шага я получаю новую ошибку.
Dockerfile:
FROM registry.access.redhat.com/ubi8/python-38
USER root
RUN yum update --assumeyes && \
yum install --assumeyes \
unixODBC-devel \
&& yum clean all
RUN curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
RUN yum download -y msodbcsql17
RUN ACCEPT_EULA=y rpm -Uvh --nodeps msodbcsql17*rpm
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
EXPOSE 6001
WORKDIR /code
ADD . /code
COPY ./requirements.txt /code/requirements.txt
RUN pip install -r requirements.txt
COPY . /code/
docker-compose.yml
version: "3.8"
services:
carcalapi:
build: .
command: gunicorn carcal.wsgi:application -b 0.0.0.0:6001 --workers=1 --timeout 1200
volumes:
- .:/code
ports:
- "6001:6001"
restart: unless-stopped
env_file: .env
networks:
- npm-nw
- carcal-network
deploy:
resources:
limits:
memory: 3000M
reservations:
memory: 20M
networks:
carcal-network:
npm-nw:
external: true
Конфигурация базы данных:
DATABASES = {
'default': {
"ENGINE": "mssql",
"NAME": env("DATABASE_NAME"),
"USER": env("DBUSER"),
"PASSWORD": env("PASSWORD"),
"HOST": env("HOST"),
"PORT": "",
"OPTIONS": {"driver":"ODBC Driver 17 for SQL Server"},
}
}
Я уже перепробовал много разных вещей, чтобы заставить его работать,
- драйвер: SQL Server Native Client 11.0 .
- пробовал с указанием пути к драйверу '/opt/.....' (точный путь сейчас не помню. точный путь сейчас не помню).
- попробовал добавить extra_params:
"OPTIONS": {"driver":"ODBC Driver 17 for SQL Server", "extra_params": "server:tcp:{server_instance}"}
. Также пробовал без tcp и с портом.
Я получил много ошибок, но теперь я застрял на этой точке: django.db.utils.InterfaceError: ('28000', "[28000] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user 'carcal_api'. (18456) (SQLDriverConnect)")
. Я следовал различным сообщениям, но не смог решить проблему.
И он работает нормально, если запустить его с помощью python amnage.py runserver
, но не работает, когда я пытаюсь сделать это с помощью gunicorn.