Конвейер Bitbucket использует сервер SQL для тестирования: не удается открыть библиотеку ODB C Driver 17 для SQL сервера - PullRequest
0 голосов
/ 29 мая 2020

Я настраиваю конвейер в битбакете для запуска моих тестов Django с серверной базой данных SQL. это мой конвейер:

image: python:3.7.3

pipelines:
  branches:
    master:
      - step:
          name: Setup sql
          image: fabiang/sqlcmd 
          script:
            - sleep 10
            - sqlcmd -S localhost -U sa -P $DB_PASSWORD
          services:
            - sqlserver
      - step:
          name: Run tests
          caches:
            - pip
          script: # Modify the commands below to build your repository.
            - python3 -m venv my_env
            - source my_env/bin/activate
            - apt-get update && apt-get install -y libldap2-dev
            - apt-get install python-dev libsasl2-dev gcc -y
            - apt-get install unixodbc unixodbc-dev -y
            - pip3 install -r req-dev.txt
            # setup local .env file
            - touch DashboardNICU/.env
            - echo "NICUDASHBOARD_SECRET_KEY=$NICUDASHBOARD_SECRET_KEY" >> DashboardNICU/.env
            - echo "NICUDASHBOARD_DB_HOST=localhost" >> DashboardNICU/.env
            - echo "NICUDASHBOARD_DB_NAME=Dashboard" >> DashboardNICU/.env
            - echo "NICUDASHBOARD_DB_PORT=1433" >> DashboardNICU/.env
            - echo "NICUDASHBOARD_DB_USER=SA" >> DashboardNICU/.env
            - echo "NICUDASHBOARD_DB_PASSWORD=$DB_PASSWORD" >> DashboardNICU/.env
            - python3 manage.py test
      - step:
          name: Linter
          script: # Modify the commands below to build your repository.
            - pip3 install flake8
            - flake8 --exclude=__init__.py migrations/
definitions:
  services:
    sqlserver: 
      image: microsoft/mssql-server-linux
      variables: 
        ACCEPT_EULA: Y
        SA_PASSWORD: $DB_PASSWORD
        ports: "1433:1433"

Но почему-то я получаю ошибку: django.db.utils.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")

И когда sqlcmd -S localhost -U sa -P $DB_PASSWORD запускается, он возвращает: Sqlcmd: Warning: The last operation was terminated because the user pressed CTRL+C.

Может кто-нибудь сказать мне, почему это происходит и как я могу это исправить?

...