Gitlab-runner: Docker 액세스 `/var/lib/docker/devicemapper`

Gitlab-runner: Docker 액세스 `/var/lib/docker/devicemapper`

저는 gitlab-runnerGentoo를 실행하는 오래된 x86 시스템에 이것을 설정하려고 합니다. 나는 가지고있다패치됨 gitlab-runner소스 코드가 i686 아키텍처에 맞지 않아 running을 활성화했기 때문에 docker현재 gitlab-runner오류가 반환되고 있습니다 .

ERROR: Failed to create container volume for /builds/Python exit code 1  job=XXX project=XXX runner=HASH

그리고 docker차례로 이 명령문을 반환합니다.

devmapper: Failed to read /var/lib/docker/devicemapper/metadata/HASH with err: open /var/lib/docker/devicemapper/metadata/HASH: no such file or directory

이로 인해 지정된 경로에 어떤 사용자 또는 그룹 및 권한을 설정해야 하는지 묻는 메시지가 표시됩니다. ls -al /var/lib/docker/devicemapper다음을 반환합니다.

total 16
drwx------  4 root root 4096 Aug  1 05:40 .
drwx--x--x 11 root root 4096 Aug  1 05:00 ..
drwx------  2 root root 4096 Aug  1 06:11 metadata
drwxr-xr-x  5 root root 4096 Aug  1 06:11 mnt

아니면 내 gitlab-runner권한이 올바르지 않을 수도 있습니다. docker 이미지를 생성하고 문제 없이 풀다운할 수 있으며 적절한 소켓이 생성됩니다(한 질문에 따르면 이것이 원인일 수 있지만 제 경우에는 그렇지 않았습니다).

답변1

나는 이 문제를 해결했습니다. 컴파일할 때 Gitlab-Runner는 go-bindata를 사용하여 지원하는 각 아키텍처에 대해 사전 빌드된 Docker 이미지 세트를 포함합니다. gitlab-runner가 처음 실행되면 시스템에 적합한 내장 바이너리를 추출하고 이를 사용하여 작업을 수행하려고 시도합니다. x86 시스템의 docker executor를 대상으로 하고 있기 때문에 x86 이미지라고 생각되는 것을 가져오므로 내 패치는 AMD64 이미지를 제공합니다. 결과적으로 docker는 오류가 발생하고 gitlab-runner는 빌드를 포기하고 불만을 표시합니다. 비결은 드로잉 보드로 돌아가서 사전 구축된 x86 이미지를 컴파일하는 것입니다. 방금 docker에서 미리 빌드된 이미지를 직접 호출하고 gitlab-runner를 설치하고 한 번 이상 실행한 후에 이 작업을 수행하는 방법을 알아냈습니다.

관련 정보