gitlab-runner 不允许操作

Operation not permitted on gitlab-runner

我正尝试在我自己的服务器上 运行 一个 gitlab ci。我使用特权

在单独的机器上注册了 gitlab-运行ner
sudo gitlab-runner -n \
  --url https://git.myServer.com/ \
  --registration-token TOKEN \
  --executor docker \
  --description "Docker runner" \
  --docker-image "myImage:version" \
  --docker-privileged

然后我创建了一个简单的.gitlab-ci.yml配置

stages:
  - build

default:
  image: myImage:version

build-os:
  stage: build
  script: ./build

我的构建脚本构建了一些 cpp 文件并触发了一些 cmake 文件。但是,其中一个 cmake 文件在尝试执行 configure_file 命令时失败

CMake Error at CMakeLists.txt:80 (configure_file):
  Operation not permitted

我认为这是我的 gitlab-运行ner 的权限问题,但我用 sudo 权限注册了它。

知道我错过了什么吗?谢谢!

编辑: 这是我的 config.toml 文件

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "Description"
  url = "https://git.myServer.com/"
  token = "TOKEN"
  executor = "docker"
  environment = [
      "DOCKER_AUTH_CONFIG={config}",
      "GIT_STRATEGY=clone",
  ]
  clone_url = "https://git.myServer.com"
  builds_dir = "/home/gitlab-runner/build"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.docker]
    tls_verify = false
    image = "myImage:version"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = [
        "/tmp/.X11-unix:/tmp/.X11-unix",
        "/dev:/dev",
        "/run/user/1000/gdm/Xauthority:/home/gitlab-runner/.Xauthority",
    ]
    memory = "8g"
    memory_swap = "8g"
    ulimit = ["core=0", "memlock=-1", "rtprio=99"]
    shm_size = 0
    pull_policy = ["if-not-present"]
    network_mode = "host"

我也尝试过将用户从 gitlab-运行ner 更改为我的主机用户 但它没有用。

这是 line 导致我的构建失败。

当 ci 为 运行 时,我从运行器机器进入了容器,我注意到存储库是以 root 身份克隆的,但构建目录是在用户下创建的。 cofigure_file 命令试图修改存储库中的文件,因此就像用户试图修改以 root 身份创建的文件(当克隆时)。我没有设法让 gitlab-runner 软件以用户身份克隆存储库。相反,我的解决方法是在构建之前更改文件夹的权限。我的 .gitlab-ci.yml 现在看起来像这样

stages:
  - build

default:
  image: myImage:version

build-os:
  stage: build
  script: 
    - cd ../ && sudo chown -R user:sudo my-repo/ && cd my-repo/
    - ./build