【问题标题】:GitLab CI/CD configuration problem using shared runners使用共享运行器的 GitLab CI/CD 配置问题
【发布时间】:2019-07-04 23:44:24
【问题描述】:

我在 GitLab CI/CD 配置方面遇到问题 - 我在 GitLab 上使用免费运行器。 我有使用 docker 的 joomla(测试)项目 - 我正在学习它是如何工作的。 我创建了.gitlab-ci.yml

image: docker:latest
services:
  - docker:dind

在文件顶部。

在测试阶段,我想运行在构建阶段创建的 docker 映像。 当我添加:

services:
    - mariadb:latest

测试阶段我总是get Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 在 docker pull 命令中。没有它,我在lack of MySql serverjoomla 图像初始化时的 docker run 命令出现错误@

任何帮助将不胜感激。

【问题讨论】:

  • 尝试在 gitlab-ci.yml 的测试阶段添加标签docker。您的 CI 由 shared-runners-manager-4.gitlab.com 处理(并且它没有 docker 标签 - 也许是问题所在)。以下是有关标签的更多信息:docs.gitlab.com/ee/ci/yaml/#tags
  • 我不认为标签会以这种方式工作(但我试图添加这个 ;])。
  • 是的,添加标签“docker”解决了你的问题(它现在可以连接 Docker 守护进程)。但是现在你有新问题(无法连接到 mariadb:3306)

标签: gitlab gitlab-ci gitlab-ci-runner gitlab-ce


【解决方案1】:

如果你设置了

services:
    - mariadb:latest 

在您的test 作业中,这将覆盖全局定义的services。因此,docker 守护进程在test 期间没有运行。这也解释了为什么在省略 test 作业的 services 定义时不会收到 Docker 守护程序错误。

要么为test 作业指定docker:dind 服务,要么删除本地services 定义并将mariadb 添加到您的全局services 定义中。

【讨论】:

  • 现在很明显了。非常感谢
猜你喜欢
  • 2020-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-08
  • 2022-01-03
  • 1970-01-01
相关资源
最近更新 更多