从GitLab设置Windows CI管道时,我遇到了许多与Windows gitlab-runner docker executor相关的问题,该executor使用Docker不再接受的旧API(1.18)。
当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”泊坞窗映像为Microsoft "official"。
该图像似乎对我正在使用的当前(实验)Docker版本(18.06.1-ce-win74)以及稳定版本均有效且有效。
整个GitLab Wiki的问题是described。安德鲁·里奇(?)甚至可以分叉和修改跑步者,使其能够正确连接,并在blogpost中提供了他的脚本和注释。这似乎产生了一些结果:
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 Wiki声明他们正在等待,直到可以发布更稳定的解决方案为止。目前,已经有超过一年的Windows dockerrunner损坏了。
Andrew的blogpost和link to his gitlab-runner.exe实际上描述了使用PowerShell运行程序的不同解决方法,该运行程序随后启动Docker实例。所有令牌信息都已公开,我不确定如何设置它,而且它似乎还依赖于具有较旧构建工具的外部映像。
似乎dockerrunner现在已连接,但如果我对它的理解不正确,则 Gitlab-runner dockerRunner 似乎不同意所使用的'build directory
'。我的存储库中的第一个Gitlab / CI脚本行只是一个echo
命令,因此该错误与ci脚本内容无关,但我不确定它的含义。如果拥有docker fu的任何人都知道发生了什么事,那真的会对我有帮助。
Using Docker executor with image buildtools2017 ...
ERROR: Preparation failed: build directory needs to be absolute and non-root path
干杯