首页 文章

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

提问于
浏览
1

我在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,它会以未知的命令错误结束,因此这不是解决方案 .

我是否需要更多链接某些文件或者是多个嵌套容器?

1 回答

  • 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
    

相关问题