Gitlab-runner: acesso do Docker a '/ var / lib / docker / devicemapper'

0

Estou tentando configurar gitlab-runner em uma máquina x86 antiga executando o Gentoo. Eu tenho corrigido gitlab-runner desde que as fontes não atendeu a arquiteturas i686 e habilitei os recursos do kernel necessários para executar docker . Atualmente, gitlab-runner está retornando o erro

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

Enquanto docker está retornando esta declaração

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

O que me leva a perguntar qual usuário ou grupo e permissão devem ser definidos no (s) caminho (s) especificado (s). ls -al /var/lib/docker/devicemapper retorna o seguinte

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

Como alternativa, meus gitlab-runner privilégios possivelmente estão incorretos. docker pode criar e extrair imagens sem nenhum problema e cria o soquete apropriado (uma pergunta indicou que essa pode ser a causa, mas não é o caso no meu caso).

    
por Carel 01.08.2017 / 23:36

1 resposta

0

Consegui resolver o problema. Quando compilado, o Gitlab-Runner incorpora um conjunto de imagens docker pré-construídas para cada arquitetura que ele usa usando o go-bindata em si mesmo. Quando alguém executa o gitlab-runner, ele extrai o binário embutido adequado para o sistema e tenta usá-lo para executar suas tarefas. Como eu estava alvejando o executor docker em uma máquina x86, ele puxou o que ele pensava ser uma imagem x86, meu patch tinha fornecido uma AMD64. Como resultado, o docker erraria e o gitlab-runner eliminaria a compilação e a reclamação. O truque era voltar para a prancheta e compilar uma imagem pré-construida do x86. Eu só descobri como fazer isso invocando a imagem pré-construída diretamente do docker, algo que só é possível fazer quando o gitlab-runner já estiver instalado e executado pelo menos uma vez.

    
por 09.08.2017 / 22:55

Tags