CI GitLab с проектом Django и базой данных MS SQL не может войти в систему

# #python #sql-server #django #linux #gitlab-ci

Вопрос:

Имейте следующее .gitlab-ci.yml:

 image: python:latest
    stages:
    - test

services:
    - name: mcr.microsoft.com/mssql/server:2017-latest
      alias: mssql

variables:
    ACCEPT_EULA: Y
    SA_PASSWORD: ${SA_PASSWORD}
    MSSQL_PID: Developer
    MSSQL_HOST: mssql
    SECRET_KEY: ${SECRET_KEY}
    DEBUG: "True"
    DB_NAME: ${DB_NAME}
    DB_USER: ${DB_USER}
    DB_PASSWORD: ${DB_PASSWORD}
    DB_HOST: mssql
    DB_PORT: 1433

# This folder is cached between builds
# http://docs.gitlab.com/ee/ci/yaml/README.html#cache
cache:
    paths:
        - ~/.cache/pip/

before_script:
    - python -V
    - apt-get update -y amp;amp; apt-get update
    - apt-get install -y --no-install-recommends curl gcc g   gnupg 
      unixodbc-dev python3-dev npm nodejs
    - curl https://packages.microsoft.com/keys/microsoft.asc | apt-key 
      > add -
    - curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list         
      /etc/apt/sources.list.d/mssql-release.list
    - apt-get update amp;amp; apt-get install -y --no-install-recommends -- 
      allow-unauthenticated msodbcsql17 mssql-tools
    - echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
    - echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
    - pip install -r requirements.txt

test:
    script:
        - python manage.py makemigrations
        - python manage.py migrate
        - python manage.py createsuperuser --username tester --email 
          tester@email.com --noinput
        - python manage.py loaddata
        - python manage.py collectstatic
        - python manage.py test --keepdb
 

Со следующей ошибкой:

 django.db.utils.InterfaceError: ('28000', "[28000] [Microsoft][ODBC 
Driver 17 for SQL Server][SQL Server]Login failed for user 
'<my-username>'. (18456) (SQLDriverConnect)")
 

У кого-нибудь есть решение, внесли различные изменения, все с одной и той же ошибкой.

ОБНОВЛЕНИЕ: Внесены изменения в файл .gitlab-ci.yml, в котором устранена ошибка «Время ожидания входа истекло», теперь появляется сообщение: «Не удалось войти в систему для пользователя my-username».

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

1. Учитывая ссылку на mcr.microsoft.com/mssql/server:2019-latest это, похоже, что вы запускаете SQL Server в контейнере Docker. SQL Server запускается не мгновенно, поэтому ему приходится проверять/обновлять версии файлов базы данных, откатывать частичные транзакции и т. Д., Прежде чем он будет готов принимать подключения. Вы пробовали запустить цикл повторных попыток с задержками в коде, который не подключается?

2. Для примера концепции см. раздел Заполнение тестовыми данными при запуске веб-приложения

3. @ user15659931 вы нашли какое-либо решение для этого?