首页 > 解决方案 > Docker-compose 与 Gitlab CI

问题描述

我想设置与 Gitlab 的持续集成。我的应用程序是通过许多 docker 容器设置的,这些容器使用 docker-compose 组合在一起。我的.gitlab-ci.yml样子:

image: "docker/compose:1.25.0-rc2-debian"

before_script:
  - docker --version
  - docker info
  - docker-compose build
  - ./bin/start-docker

rspec:
  script:
    - bundle exec rspec

rubocop:
  script:
    - bundle exec rubocop

当我推送时,它会尝试运行docker-compose build,这反过来又找不到 docker 守护进程。这并不完全令人惊讶,因为我还没有尝试启动 docker 守护进程。但我通常会这样做systemctl start docker- 这会失败,因为跑步者不使用 systemd。

如何让 docker-compose 构建?

一些注意事项:docker --versiondocker-compose --version表明 docker 和 docker-compose 都已正确安装。如果我尝试docker info,那么我会收到“找不到 docker daemon”错误。

标签: dockerdocker-composecontinuous-integrationgitlab

解决方案


image: "docker/compose:1.25.0-rc2-debian"表示您正在 docker runner 上运行管道。尝试在安装了 docker 和 docker-compose 并运行 docker 守护进程的 shell runner 上运行它。

其他方法是将您的 docker-compose 重写为具有适当依赖关系的 .gitlab-ci.yml 。


推荐阅读