Как сделать так, чтобы docker-credential-pass был доступен другому пользователю в системе?

# #linux #docker #docker-compose #gitlab

Вопрос:

Я установил gitlab-runner, который по умолчанию создает пользователя gitlab-runner в системе и добавляет его в группу docker. Я решил попробовать войти в систему docker из учетной записи оболочки gitlab-runner, чтобы выяснить причину, по которой я получаю ошибку при входе в свой конвейер. Я заметил, что при попытке выйти из моего пользователя по умолчанию freshuser из всей системы через графический интерфейс и войти в систему с пользователем gitlab-runner это работает, и он предлагает мне написать кодовую фразу, но когда я являюсь системным пользователем по умолчаниюновый пользователь Я не получаю запрос парольной фразы для помощника docker-credential-pass. Поэтому я попытался войти в систему, и он сохранил пароль. То же самое, когда я хотел создать ключ для хранения учетных записей docker с помощью GnuPG, запрос пароля не будет отображаться только при входе в систему с помощью gitlab-runner. Обратите внимание, что это тоже происходит при нажатии в реестр контейнеров. Кто-нибудь может сказать мне, что происходит, я в замешательстве?

Я продолжаю получать эту ошибку:

 Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/docker/credentials/store.py", line 79, in _execute
    output = subprocess.check_output(
  File "/usr/lib/python3.9/subprocess.py", line 424, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/usr/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/usr/bin/docker-credential-pass', 'get']' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/docker/auth.py", line 264, in _resolve_authconfig_credstore
    data = store.get(registry)
  File "/usr/lib/python3.9/site-packages/docker/credentials/store.py", line 35, in get
    data = self._execute('get', server)
  File "/usr/lib/python3.9/site-packages/docker/credentials/store.py", line 93, in _execute
    raise errors.process_store_error(e, self.program)
docker.credentials.errors.StoreError: Credentials store docker-credential-pass exited with "exit status 2: gpg: decryption failed: No secret key".
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 33, in <module>
    sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')())
  File "/usr/lib/python3.9/site-packages/compose/cli/main.py", line 81, in main
    command_func()
  File "/usr/lib/python3.9/site-packages/compose/cli/main.py", line 203, in perform_command
    handler(command, command_options)
  File "/usr/lib/python3.9/site-packages/compose/metrics/decorator.py", line 18, in wrapper
    result = fn(*args, **kwargs)
  File "/usr/lib/python3.9/site-packages/compose/cli/main.py", line 862, in push
    self.project.push(
  File "/usr/lib/python3.9/site-packages/compose/project.py", line 828, in push
    service.push(ignore_push_failures)
  File "/usr/lib/python3.9/site-packages/compose/service.py", line 1260, in push
    output = self.client.push(repo, tag=tag, stream=True)
  File "/usr/lib/python3.9/site-packages/docker/api/image.py", line 480, in push
    header = auth.get_config_header(self, registry)
  File "/usr/lib/python3.9/site-packages/docker/auth.py", line 47, in get_config_header
    authcfg = resolve_authconfig(
  File "/usr/lib/python3.9/site-packages/docker/auth.py", line 324, in resolve_authconfig
    return authconfig.resolve
_authconfig(registry)
  File "/usr/lib/python3.9/site-packages/docker/auth.py", line 235, in resolve_authconfig
    cfg = self._resolve_authconfig_credstore(registry, store_name)
  File "/usr/lib/python3.9/site-packages/docker/auth.py", line 280, in _resolve_authconfig_credstore
    raise errors.DockerException(
docker.errors.DockerException: Credentials store error: StoreError('Credentials store docker-credential-pass exited with "exit status 2: gpg: decryption failed: No secret key".')
 

ОБНОВЛЕНИЕ: Я попытался добавить пользователя gitlab-runner в группу системных пользователей по умолчанию, но все равно безуспешно.

Запрос парольной фразы, который я получаю при входе в систему из учетной записи gitlab-runner:

введите описание изображения здесь

Ответ №1:

Я только что нашел ответ отсюда, мне пришлось добавить gitlab-runner в список управления, чтобы иметь возможность использовать дисплей:

https://askubuntu.com/questions/654966/enable-x-display-access-for-local-user