GitLab CI Shell执行器无法运行docker-compose问题求助
问题解决
你的错误核心是CI配置里的DOCKER_HOST变量设置错误,导致docker-compose尝试连接一个不存在的docker主机。
具体修复步骤:
修改GitLab CI流水线配置,移除错误的
DOCKER_HOST变量:deploy: stage: build tags: - shell_executor script: - pwd - docker-compose ps - docker-compose up -d解释:Shell执行器直接在主机上运行,docker默认会使用
unix:///var/run/docker.sock连接本地服务,不需要指定TCP地址。你设置的tcp://docker:2375/是给Docker执行器搭配Docker-in-Docker场景用的,在Shell执行器下完全不适用。确保gitlab-runner用户权限生效:
你已经执行了usermod -aG docker gitlab-runner,但需要重启GitLab Runner服务让组权限生效:systemctl restart gitlab-runner可选验证:在CI脚本里添加
docker info命令,确认docker连接正常:script: - docker info # 验证docker连接 - pwd - docker-compose ps - docker-compose up -d
补充说明:
你用Docker执行器加SSH能正常工作,是因为SSH到主机后,使用的是主机本地的环境,没有CI里那个错误的DOCKER_HOST变量,所以docker-compose能正常连接本地docker服务。
内容的提问来源于stack exchange,提问作者wwwwww23
相关产品推荐
相关产品推荐

