如何在docker中运行docker-compose在docker中运行gitlab-runner conatiner?

时间:2018-02-05 19:24:36

标签: docker docker-compose gitlab-ci-runner

我在docker容器中有一个gitlab运行器,如果我运行像nginx这样的图像,运行正常。但是现在我试图在gitlab runner中的docker(dind)中运行docker,我想在dind里面运行docker-compose。 Docker信息运行正常,但如果我尝试运行docker-compose,我会收到一个权限被拒绝的错误。

我将/ usr / local / bin / docker-compose文件链接到gitlab runner容器,并将其输入到runner config.toml文件的volumes参数中。

如果我尝试运行sudo,它会以未知的命令错误结束,因此无法解决问题。

我是否必须更多地链接某些文件或者是多个嵌套容器?

2 个答案:

答案 0 :(得分:3)

如果你正在使用dind,这意味着docker工作正常,现在你只需要安装docker-compose,这只是简单的python包,你可以在before_script中完成

<强> .gitlab-ci.yml

image: docker:latest

services:
  - docker:dind

variables:
  DOCKER_DRIVER: overlay2

stages:
- test

before_script:
  - apk add --no-cache py-pip
  - pip install docker-compose
  - docker info
  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN docker.registry.com

test:
  stage: test
  script:

    - cp .env.sample .env # copy environement variable
    - docker-compose up -d
    # run some test here

答案 1 :(得分:1)

要拥有@Lob,您需要为映像docker(版本18.09.6)安装它,在编写本文时应建立481bc77。

docker-compose version 1.24.0起,您还需要以下dev依赖项才能安装docker-compose:

docker-compose

以下是示例apk add python-dev libffi-dev openssl-dev gcc libc-dev make

.gitlab-ci.yml