Skip to content

Permissions of /builds have changed from 777 to 755 after 12.9.0

Summary

In versions up to 12.9.0 the permission set of /builds in the Docker executor is 777. In version 12.10.1 that changed to 755. As my build images are running as non-root and write to /builds, the upgrade broke my builds. As the change is not listed in the change log, I consider this a bug.

I am not sure, if 12.10.0 is also affected, as it is not working at all because of the /cache issues.

Steps to reproduce

Upgrade to v12.10.1 and try to write to /builds

.gitlab-ci.yml
somejob:
  scripts:
  - touch /builds/newfile

Actual behavior

Build fails because the write to /builds/newfile is not permitted

Expected behavior

The file/directory gets created because of the world writable permission scheme

Relevant logs and/or screenshots

job log
$ mkdir ~/.ssh
mkdir: cannot create directory ‘/builds/.ssh’: Permission denied

Environment description

We are using the Docker executor.

config.toml contents
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "foobar"
  url = "https://git.example.com/"
  token = "AASDADSADADSADASDSADASDASD"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "alpine:3"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = true
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

Used GitLab Runner version

 Running with gitlab-runner 12.10.1 (ce065b93)
  on docker-runner (ansible) aZX4HWo5