Skip to content

Docker 1.10.1 does not expose devices even though configured.

@jonathon-reinhart, @ayufan: I am trying to use the newly added feature implemented in !91 (merged) (as a pre-stage to getting rid of docker completely and using a virtualbox based workflow eventually).

Even though the devices given in config.toml are passed to the docker runner and shown when using docker inspect the devices don't show up in the running docker container. This fails silently without any log entry or error message.

Do I need to add appropriate privileges to make that work?

Maybe this is a docker issue (strictly speaking) but I would expect the runner to check if the devices exist in the container like configured.

05:55:09 root@trusty64:~] $ docker --version
Docker version 1.10.1, build 9e83765
[05:35:04 root@trusty64:~] $ gitlab-ci-multi-runner --version
gitlab-ci-multi-runner version 1.1.0~beta.135.g24365ee (24365ee)
[05:44:17 root@trusty64:~] $ cat /etc/gitlab-runner/config.toml 
concurrent = 2

[[runners]]
  name = "gitlab-ci runner on gitlab host"
  url = "{censored}"
  token = "{censored}"
  limit = 1
  executor = "docker"
  [runners.docker]
    image = "jubbr/gitlab-ci-runner:0.0.4"
    privileged = false
    volumes = ["/var/gitlab-runner/cache"]
    devices = ["/dev/vboxdrv", "/dev/vboxdrvu", "/dev/vboxnetctl"]
    services = []
    allowed_images = ["jubbr/gitlab-ci-runner*:*"]
[05:57:17 root@trusty64:~] $ ls -lisa /dev/vbox*
9663 0 crw------- 1 root    root 10, 54 Feb 20 05:57 /dev/vboxdrv
9667 0 crw------- 1 root    root 10, 53 Feb 20 05:57 /dev/vboxdrvu
9219 0 crw-rw---- 1 vboxadd root 10, 56 Feb 20 05:57 /dev/vboxguest
9675 0 crw------- 1 root    root 10, 52 Feb 20 05:57 /dev/vboxnetctl
9220 0 crw-rw-rw- 1 vboxadd root 10, 55 Feb 20 05:57 /dev/vboxuser
[05:48:44 root@trusty64:~] $ grep -A3 "Starting multi-runner" /var/log/syslog | sed -e 's/#012/\n/g'
Feb 20 07:14:40 trusty64 gitlab-runner[4206]: Starting multi-runner from /etc/gitlab-runner/config.toml ...
Feb 20 07:14:40 trusty64 gitlab-runner[4206]: Running in system-mode.
Feb 20 07:14:40 trusty64 gitlab-runner[4206]: 
Feb 20 07:14:40 trusty64 gitlab-runner[4206]: Config loaded: concurrent: 2
user: gitlab-runner
runners:
- name: gitlab-ci runner on gitlab host
  limit: 1
  outputlimit: 0
  runnercredentials:
    url: {censored}
    token: {censored}
    tlscafile: ""
  runnersettings:
    executor: docker
    buildsdir: ""
    cachedir: ""
    environment: []
    shell: ""
    ssh: null
    docker:
      dockercredentials:
        host: ""
        certpath: ""
        tlsverify: false
      hostname: ""
      image: jubbr/gitlab-ci-runner:0.0.4
      privileged: false
      capadd: []
      capdrop: []
      devices:
      - /dev/vboxdrv
      - /dev/vboxdrvu
      - /dev/vboxnetctl
      disablecache: false
      volumes:
      - /var/gitlab-runner/cache
      cachedir: ""
      extrahosts: []
      links: []
      services: []
      waitforservicestimeout: 0
      allowedimages:
      - jubbr/gitlab-ci-runner*:*
      allowedservices: []
      imagettl: "0"
    parallels: null
    virtualbox: null
    cache: null
    machine: null
modtime: {}
loaded: true
[05:43:46 root@trusty64:~] $ docker inspect  -f "{{.Name}} {{.HostConfig.Devices}}" $(docker ps -a -q)
/runner-9fc2140e-project-3-concurrent-0-build [{/dev/vboxdrv /dev/vboxdrv rwm} {/dev/vboxdrvu /dev/vboxdrvu rwm} {/dev/vboxnetctl /dev/vboxnetctl rwm}]

docker-devices-test