Docker SQL - таймаут соединения с SQL

Я пытался решить эту проблему в течение многих дней, но так и не смог решить ее. Я создал образ docker для mssql и django app. Когда я попытался использовать docker-compose, я вижу, что он все еще приводит к той же ошибке, но когда я запускаю в локальном режиме, он работает нормально.

моя системная конфигурация:

microsoft.com/fwlink/?linkid=2099216.
sql-server-db    | 2021-10-09 13:44:28.18 Server      The licensing PID was successfully processed. The new edition is [Express Edition].
2021-10-09 13:44:28.89 Server      Microsoft SQL Server 2017 (RTM-CU26) (KB5005226) - 14.0.3411.3 (X64)
        Aug 24 2021 09:59:15
        Copyright (C) 2017 Microsoft Corporation
        Express Edition (64-bit) on Linux (Ubuntu 16.04.7 LTS)

errorlogs:

 Exception in thread django-main-thread:
web_1            | Traceback (most recent call last):
web_1            |   File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection
web_1            |     self.connect()
web_1            |   File "/usr/local/lib/python3.8/site-packages/django/utils/asyncio.py", line 26, in inner
web_1            |     return func(*args, **kwargs)
web_1            |   File "/usr/local/lib/python3.8/site-packages/django/db/backends/base/base.py", line 197, in connect
web_1            |     self.connection = self.get_new_connection(conn_params)
web_1            |   File "/usr/local/lib/python3.8/site-packages/sql_server/pyodbc/base.py", line 312, in get_new_connection
web_1            |     conn = Database.connect(connstr,
web_1            | pyodbc.OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')

вот мои требования.txt есть ли что-то, что я пропустил для установки

requirements.txt

asgiref==3.4.1
click==8.0.1
colorama==0.4.4
Django==2.1.15
django-mssql-backend==2.8.1
# django-pyodbc-azure==2.1.0.0
django-pyodbc-azure-2019==2.1.0.0
djangorestframework==3.12.4
Flask==2.0.1
itsdangerous==2.0.1
Jinja2==3.0.1
MarkupSafe==2.0.1
mssql-django==1.0
pyodbc==4.0.32
pytz==2021.1
sqlparse==0.4.2
Werkzeug==2.0.1

dockerfile

FROM python:3.8
ENV PYTHONUNBUFFERED 1

WORKDIR /code
#before install pyodbc , we need unixodbc-dev
# RUN apt-get install multiarch-support
# install msodbcsql17
# RUN  su

RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list
RUN exit

RUN wget http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1.4_amd64.deb
RUN apt-get install ./multiarch-support_2.27-3ubuntu1.4_amd64.deb
RUN apt-get update

# RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17
# RUN 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
# RUN source ~/.bashrc
# optional: for unixODBC development headers

RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17
RUN apt-get install -y unixodbc-dev
#before install pyodbc , we need unixodbc-dev
# RUN apt-get install unixodbc-dev
# RUN  curl https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.8.1.1-1_amd64.sig

# bin ~/Downloads
# RUN curl  http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1.4_amd64.deb
# RUN apt-get install ./multiarch-support_2.27-3ubuntu1.4_amd64.deb
# RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17

RUN apt-get update && apt-get install -y --no-install-recommends \
    unixodbc-dev \
    unixodbc \
    libpq-dev 

COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

COPY . .

CMD ["python3", "manage.py", "runserver", "0.0.0.0:8000"]

Я создал сетевой мост для приложения и базы данных, но все та же ошибка сохраняется, поэтому я закомментировал ее. Я пробовал все возможные способы с 4 дней

docker-compose.yml

version: '3'

services:
  web:
    build: .
    ports:
      - "8010:8000"
    volumes: 
      - .:/code
    command: python manage.py runserver 0.0.0.0:8000
    depends_on:
      - sql-server-db

    # networks:
    #   app_net:
    #     ipv4_address: 192.168.1.3


  sql-server-db:
    container_name: sql-server-db
    image: mcr.microsoft.com/mssql/server:2017-latest
    environment:
     SA_PASSWORD: "Password@123"
     ACCEPT_EULA: "Y"
     MSSQL_PID: "Express"
    ports:
      - 1433:1433
    # networks:
    #   app_net:
    #     ipv4_address: 192.168.1.2

    volumes:
      - ./data:/var/opt/mssql/data


# networks:
#   app_net:
#     ipam:
#       driver: default
#       config:
#         - subnet: "192.168.1.0/16"
#           gateway: 192.168.1.1
  

settings.py

DATABASES = {
    "default": {
        "ENGINE": "sql_server.pyodbc",
        "NAME": "dbnew",
        "USER": "",
        "PASSWORD": "",
        "HOST": "localhost",
        "PORT": "",
        "OPTIONS": 
        {
            "driver":"ODBC Driver 17 for SQL Server", 
        },
    },
}
  
Вернуться на верх