在 Windows PowerShell GitLab Runner 中执行 Docker 命令时出现“协议不可用”错误

问题描述 投票:0回答:1

我正在尝试使用 GitLab 管道构建 Windows Docker 映像。 GitLab Runner 配置为使用 shell (PowerShell) 执行器,并托管在已安装 Docker 的 AWS Windows EC2 实例上。

在管道中,我添加了诸如

docker --version, docker info, docker login, and docker build
之类的命令。虽然这些命令直接在 EC2 实例上运行时可以成功执行,但在通过 GitLab Runner 运行它们时,我遇到了“协议不可用”错误。

为了确保 Docker 守护进程在 EC2 实例上的功能,我在运行程序作业中执行了命令

Get-Service Docker
,这确认了 Docker 服务正在运行,并显示:

Status   Name               DisplayName                           
------   ----               -----------                           
Running  Docker             Docker Engine

尽管如此,我在通过 GitLab Runner 执行 Docker 命令时仍然面临协议错误。任何有关解决此问题的见解将不胜感激。

docker powershell gitlab gitlab-ci gitlab-ci-runner
1个回答
0
投票

我在这里发现了问题。这是因为运行程序作业配置中的 DOCKER_HOST 配置不正确。对于 Windows,应该设置为

DOCKER_HOST: tcp://docker:2375/
,或者根本不需要配置它,在这种情况下,runner 服务将通过默认主机访问 Docker。

© www.soinside.com 2019 - 2024. All rights reserved.