2

我正在尝试从 gitlab ci 转移到drone.io。但我不能让 DIND 像在 gitlab 上那样工作。以上是我在 gitlab 上的做法。

variables:
  NODE_ENV: 'test'
  DOCKER_DRIVER: overlay

image: gitlab/dind

services:
  - docker:dind

cache:
  untracked: true

stages:
  - test

test:
  stage: test
  before_script:
    - docker info
    - docker-compose --version
    - docker-compose pull
    - docker-compose build
  after_script:
    - docker-compose down
  script:
    - docker-compose run --rm api yarn install

如何创建等效的无人机文件?

4

1 回答 1

9

您可以使用服务部分来启动 docker 守护进程。

pipeline:
  ping:
    image: docker
    environment:
      - DOCKER_HOST=unix:///drone/docker.sock
    commands:
      - sleep 10 # give docker enough time to initialize
      - docker ps -a

services:
  docker:
    image: docker:dind
    privileged: true
    command: [ '-H', 'unix:///drone/docker.sock' ]

请注意,我们更改了 docker 套接字的默认位置并写入在管道中的所有容器之间共享的无人机卷:

command: [ '-H', 'unix:///drone/docker.sock' ]

另请注意,我们需要以特权模式运行 dind 容器。特权标志只能由受信任的存储库使用。因此,您需要用户管理员在无人机用户界面中为您的存储库设置可信标志为 true。

privileged: true
于 2017-09-24T15:25:22.520 回答