Проблема с Windows Docker API для использования GitLab-runner - PullRequest
0 голосов
/ 12 сентября 2018

При настройке конвейера CI Windows от GitLab я проходил через многочисленные проблемы, связанные с исполнителем-докером gitlab-runner Windows, использующим старый API (1.18), который Docker больше не принимает.

Эта проблема приводит к следующим сообщениям об ошибках, когда Gitlab / CI пытается подключиться к бегуну:

Running with gitlab-runner 11.2.0 (35e8515d) on Windows VS2017 x64 0825d1d7 
Using Docker executor with image buildtools2017 ... 
ERROR: Preparation failed: Error response from daemon: **client version 1.18 is too old.** Minimum supported API version is 1.24, please upgrade your client to a newer version (executor_docker.go:1148:0s)

Образ докера buildtools2017, на который ссылается, является "1006 *" официальным "Microsoft" .

Изображение, кажется, работает и подходит для текущей (экспериментальной) версии Docker, которую я использую (18.06.1-ce-win74), а также для стабильной версии.

Эта проблема была описана в вики-сайте GitLab. Эндрю Лич (?) Зашел так далеко, что раскошелил и изменил бегуна, чтобы он мог правильно подключиться, и любезно предоставил свои сценарии и комментарии в блоге Это, кажется, дает некоторые результаты:

C:\gitlab-runner>gitlab-runner.exe -v
Version:      10.8.0~beta.551.g67a6ccc7
Git revision: 67a6ccc7
Git branch:   windows-container-executor
GO version:   go1.9.4
Built:        2018-07-30T08:57:44+00:00
OS/Arch:      windows/amd64

Вики GitLab заявляет, что они ждут, пока не будет выпущено более стабильное решение. В настоящее время прошло более одного года разбитых окон бегунов докера ..

Эндрю blogpost и ссылка на его gitlab-runner.exe описывает на самом деле другой обходной путь, используя средство запуска PowerShell, которое затем запускает экземпляр Docker. Вся информация о токене открыта, я не знаю, как ее настроить, и она также полагается на внешний образ с более старыми инструментами сборки.

Кажется, теперь подключается докер-бегун, но если я правильно понимаю, докер-бегун Gitlab-runner , похоже, не согласен с используемым 'build directory'. Первая сценарий Gitlab / CI в моем репозитории - это просто команда echo, поэтому ошибка не связана с содержимым сценария ci, но я не уверен, что это такое. Если кто-нибудь с докер фу знает, что происходит, это действительно поможет мне.

Using Docker executor with image buildtools2017 ...
ERROR: Preparation failed: build directory needs to be absolute and non-root path

Приветствия

...