Shell script installation fails in centos 7 container
I use this runner in a docker container (based on the centos/centos7 image).
I try to use shell script installer and it fails:
[root@cirunner /]# curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5186 0 5186 0 0 807 0 --:--:-- 0:00:06 --:--:-- 1357
Detected centos version 7...
Checking for curl...
Detected curl...
Getting the hostname of this machine...
Found hostname: cirunner
Downloading repository file: https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/config_file.repo?os=centos&dist=7&name=cirunner&source=script
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 577 0 577 0 0 399 0 --:--:-- 0:00:01 --:--:-- 399
done.
Installing pygpgme to verify GPG signatures...
Loaded plugins: fastestmirror
runner_gitlab-ci-multi-runner-source/signature | 836 B 00:00:00
Retrieving key from https://packages.gitlab.com/gpg.key
runner_gitlab-ci-multi-runner-source/signature | 951 B 00:00:00 !!!
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 367, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 174, in main
result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 571, in doCommands
return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
File "/usr/share/yum-cli/yumcommands.py", line 440, in doCommand
return base.installPkgs(extcmds, basecmd=basecmd)
File "/usr/share/yum-cli/cli.py", line 967, in installPkgs
txmbrs = self.install(pattern=arg)
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 4764, in install
mypkgs = self.pkgSack.returnPackages(patterns=pats,
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 1079, in <lambda>
pkgSack = property(fget=lambda self: self._getSacks(),
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 784, in _getSacks
self.repos.populateSack(which=repos)
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 344, in populateSack
self.doSetup()
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 157, in doSetup
self.retrieveAllMD()
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 88, in retrieveAllMD
dl = repo._async and repo._commonLoadRepoXML(repo)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1456, in _commonLoadRepoXML
result = self._getFileRepoXML(local, text)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1234, in _getFileRepoXML
size=102400) # setting max size as 100K
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1022, in _getFile
**kwargs
File "/usr/lib/python2.7/site-packages/urlgrabber/mirror.py", line 448, in urlgrab
return self._mirror_try(func, url, kw)
File "/usr/lib/python2.7/site-packages/urlgrabber/mirror.py", line 425, in _mirror_try
return func_ref( *(fullurl,), opts=opts, **kw )
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1172, in urlgrab
return self._retry(opts, retryfunc, url, filename)
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1064, in _retry
r = apply(func, (opts,) + args, {})
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1166, in retryfunc
_run_callback(opts.checkfunc, obj)
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1032, in _run_callback
return cb(obj, *arg, **karg)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1700, in _checkRepoXML
self.gpg_import_func(self, self.confirm_func)
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 6352, in getKeyForRepo
self._getAnyKeyForRepo(repo, repo.gpgdir, repo.gpgkey, is_cakey=False, callback=callback)
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 6271, in _getAnyKeyForRepo
if hex(int(info['keyid']))[2:-1].upper() in misc.return_keyids_from_pubring(destdir):
File "/usr/lib/python2.7/site-packages/yum/misc.py", line 598, in return_keyids_from_pubring
for k in ctx.keylist():
gpgme.GpgmeError: (7, 32870, u'Inappropriate ioctl for device')
Installing yum-utils...
Loaded plugins: fastestmirror
runner_gitlab-ci-multi-runner-source/signature | 836 B 00:00:00
Retrieving key from https://packages.gitlab.com/gpg.key
runner_gitlab-ci-multi-runner-source/signature | 951 B 00:00:00 !!!
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 367, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 174, in main
result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 571, in doCommands
return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
File "/usr/share/yum-cli/yumcommands.py", line 440, in doCommand
return base.installPkgs(extcmds, basecmd=basecmd)
File "/usr/share/yum-cli/cli.py", line 967, in installPkgs
txmbrs = self.install(pattern=arg)
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 4764, in install
mypkgs = self.pkgSack.returnPackages(patterns=pats,
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 1079, in <lambda>
pkgSack = property(fget=lambda self: self._getSacks(),
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 784, in _getSacks
self.repos.populateSack(which=repos)
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 344, in populateSack
self.doSetup()
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 157, in doSetup
self.retrieveAllMD()
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 88, in retrieveAllMD
dl = repo._async and repo._commonLoadRepoXML(repo)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1456, in _commonLoadRepoXML
result = self._getFileRepoXML(local, text)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1234, in _getFileRepoXML
size=102400) # setting max size as 100K
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1022, in _getFile
**kwargs
File "/usr/lib/python2.7/site-packages/urlgrabber/mirror.py", line 448, in urlgrab
return self._mirror_try(func, url, kw)
File "/usr/lib/python2.7/site-packages/urlgrabber/mirror.py", line 425, in _mirror_try
return func_ref( *(fullurl,), opts=opts, **kw )
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1172, in urlgrab
return self._retry(opts, retryfunc, url, filename)
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1064, in _retry
r = apply(func, (opts,) + args, {})
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1166, in retryfunc
_run_callback(opts.checkfunc, obj)
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1032, in _run_callback
return cb(obj, *arg, **karg)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1700, in _checkRepoXML
self.gpg_import_func(self, self.confirm_func)
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 6352, in getKeyForRepo
self._getAnyKeyForRepo(repo, repo.gpgdir, repo.gpgkey, is_cakey=False, callback=callback)
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 6271, in _getAnyKeyForRepo
if hex(int(info['keyid']))[2:-1].upper() in misc.return_keyids_from_pubring(destdir):
File "/usr/lib/python2.7/site-packages/yum/misc.py", line 598, in return_keyids_from_pubring
for k in ctx.keylist():
gpgme.GpgmeError: (7, 32870, u'Inappropriate ioctl for device')
Generating yum cache for runner_gitlab-ci-multi-runner...
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 367, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 174, in main
result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 571, in doCommands
return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
File "/usr/share/yum-cli/yumcommands.py", line 1367, in doCommand
base.repos.doSetup()
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 157, in doSetup
self.retrieveAllMD()
File "/usr/lib/python2.7/site-packages/yum/repos.py", line 88, in retrieveAllMD
dl = repo._async and repo._commonLoadRepoXML(repo)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1456, in _commonLoadRepoXML
result = self._getFileRepoXML(local, text)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1234, in _getFileRepoXML
size=102400) # setting max size as 100K
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1022, in _getFile
**kwargs
File "/usr/lib/python2.7/site-packages/urlgrabber/mirror.py", line 448, in urlgrab
return self._mirror_try(func, url, kw)
File "/usr/lib/python2.7/site-packages/urlgrabber/mirror.py", line 425, in _mirror_try
return func_ref( *(fullurl,), opts=opts, **kw )
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1172, in urlgrab
return self._retry(opts, retryfunc, url, filename)
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1064, in _retry
r = apply(func, (opts,) + args, {})
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1166, in retryfunc
_run_callback(opts.checkfunc, obj)
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1032, in _run_callback
return cb(obj, *arg, **karg)
File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1700, in _checkRepoXML
self.gpg_import_func(self, self.confirm_func)
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 6352, in getKeyForRepo
self._getAnyKeyForRepo(repo, repo.gpgdir, repo.gpgkey, is_cakey=False, callback=callback)
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 6271, in _getAnyKeyForRepo
if hex(int(info['keyid']))[2:-1].upper() in misc.return_keyids_from_pubring(destdir):
File "/usr/lib/python2.7/site-packages/yum/misc.py", line 598, in return_keyids_from_pubring
for k in ctx.keylist():
gpgme.GpgmeError: (7, 32870, u'Inappropriate ioctl for device')
If I set repo_gpgcheck=0 in /etc/yum.repos.d/runner_gitlab-ci-multi-runner.repo I can install the package without any problems.
I'm sure this issue isn't related to the runner itself, but I think its good to have this issue here for documentation and tracking purposes.