Gitlab-CI не может подключиться к сервисам в контейнерах windows - PullRequest
0 голосов
/ 23 апреля 2020

В настоящее время я перемещаю наш конвейер CI / CD из среды Bitbucket / Jenkins в размещенный GitLab с дополнительными настраиваемыми бегунами gitlab-ci. Пока что все выглядит нормально, кроме случаев, когда дело касается сервисов, особенно в отношении сервера MS SQL.

Я настроил файл gitlab-ci.yml, который содержит сервис и задание на этапе сборки, которое в основном просто выполняет некоторые цели msbuild. Я вызываю цель AttachDatabase, которая затем внутренне подключается к базе данных и готовит все для тестирования юнитов. К сожалению, я не могу подключиться к базе данных, независимо от того, использую я псевдоним службы или нет.

Согласно документации, я должен иметь возможность использовать псевдоним, определенный в службах, в строке подключения, найденной в Library.Build.Database.targets для подключения к базе данных.

Я установил небольшой справочный проект, который иллюстрирует проблему: ms sql -test .

Если конвейер запущен, в журнале появляется следующее сообщение об ошибке:

error : A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections

image: "mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019"

variables:
  PROJ_NAME: MSSQL.Test.proj
  MSBUILD_BIN: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\msbuild.exe'
  NUGET_BIN: 'C:\Program Files\NuGet\nuget.exe'
  ACCEPT_EULA: 'Y'
  sa_password: Unit-T3st3r

services:
  - name: advitec/mssql-server-windows-developer
    alias: mssql

attachdatabase:
  stage: build
  tags:
  - windows-1809
  - 3volutions
  - docker-windows
  cache:
    paths:
      - packages
  before_script:
  - cmd /C "$NUGET_BIN" restore .\packages.config -OutputDirectory .\packages
  allow_failure: false
  script:
  - cmd /C "$MSBUILD_BIN" "$PROJ_NAME" -t:AttachDatabase -v:Minimal "-p:Configuration=ReleaseForTesting;UniqueBuildNumber=$CI_PIPELINE_IID"

Я использую пользовательский windows Gitlab бегун (только по соображениям производительности), ниже соответствующего config.toml

Runner:
    concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "gitlab-runner-02-windows-server-datacenter-1809"
  url = "https://gitlab.com/"
  token = "****"
  executor = "docker-windows"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
  [runners.docker]
    tls_verify = false
    image = "mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["c:\\cache"]
    shm_size = 0

Есть идеи, что мне не хватает?

Приветствия

...