Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 作为根用户的Openshift容器_Jenkins_Openshift_Jenkins Pipeline_Openshift Origin_Openshift 3 - Fatal编程技术网

Jenkins 作为根用户的Openshift容器

Jenkins 作为根用户的Openshift容器,jenkins,openshift,jenkins-pipeline,openshift-origin,openshift-3,Jenkins,Openshift,Jenkins Pipeline,Openshift Origin,Openshift 3,Hi Iam正在openshift 3.9上执行CICD。我有一个jenkins吊舱在openshift运行。我在jenkins和下面运行selenium脚本,这是一个错误,我好像丢失了一个包 Running TestSuite /var/lib/jenkins/jobs/Pipeline/workspace/src/test/resources/chromedriver: error while loading shared libraries: libgconf-2.so.4: can

Hi Iam正在openshift 3.9上执行CICD。我有一个jenkins吊舱在openshift运行。我在jenkins和下面运行selenium脚本,这是一个错误,我好像丢失了一个包

   Running TestSuite
/var/lib/jenkins/jobs/Pipeline/workspace/src/test/resources/chromedriver: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory
Nov 21, 2018 8:25:36 AM org.openqa.selenium.os.OsProcess checkForError
SEVERE: org.apache.commons.exec.ExecuteException: Process exited with an error: 127 (Exit value: 127)
Tests run: 8, Failures: 1, Errors: 0, Skipped: 7, Time elapsed: 21.9 sec <<< FAILURE! - in TestSuite
BrowserSettings(SecurityCheckList)  Time elapsed: 21.273 sec  <<< FAILURE!
org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.9.1', revision: '63f7b50', time: '2018-02-07T22:25:02.294Z'
System info: host: 'jenkins-1-7zgld', ip: '10.131.0.32', os.name: 'Linux', os.arch: 'i386', os.version: '3.10.0-957.el7.x86_64', java.version: '1.8.0_181'
Driver info: driver.version: ChromeDriver
    at java.util.concurrent.FutureTask.get(FutureTask.java:205)
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:148)
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219)
当我尝试安装时,下面的错误出现在我的jenkins容器中

    sh-4.2$ yum install libgconf2-4
Loaded plugins: ovl, product-id, search-disabled-repos, subscription-manager
[Errno 13] Permission denied: '/etc/pki/entitlement-host'
ovl: Error while doing RPMdb copy-up:
[Errno 13] Permission denied: '/var/lib/rpm/.dbenv.lock'
You need to be root to perform this command.
当我转到指定位置并尝试将权限更改为chmod 777.dbenv.lock时

    sh-4.2$ cd /var/lib/rpm/
sh-4.2$ ls -latr
total 19560
-rw-r--r--. 1 root root        0 Aug  9 18:21 .dbenv.lock
这是一个错误

sh-4.2$ chmod 777 .dbenv.lock
chmod: changing permissions of ‘.dbenv.lock’: Operation not permitted

我的问题是如何以root用户身份进入jenkins pod,并通过openshift中的yum install libgconf-2-4安装rpm软件包libgconf-2-4?

您似乎应该自定义jenkins图像,如下所示。[0]

  • 创建
    Dockerfile

    FROM registry.access.redhat.com/openshift3/jenkins-2-rhel7 USER 0 RUN yum -y install libgconf2-4 && yum clean all -y USER 1001 docker build .
  • 登录
    OpenShift
    的内部注册表以推送图像

    docker login -u admin -p docker-registry.default.svc:5000
  • 图像

    docker push docker-registry.default.svc:5000/openshift/jenkins-2-rhel7-custom
我希望它能帮助你。:^)


[0]

您可以在dockerfile中使用
用户root
来解决您的问题

您好,我已经设置了jenkins,并且在同一个pod上进行了配置。你能让我知道我是否可以用root访问我现在的pod,而不是重复上面的步骤吗。是否可以获得对当前运行pod的root访问权限?@sudbir是的,您可以通过向jenkins服务帐户授予anyuid来获得root权限。“oc adm policy add scc to user anyuid-z jenkins”,有关更多详细信息,请参阅。您好,我使用了命令“oc adm policy add scc to user anyuid-z jenkins”,并通过putty以“oc rsh.但在安装软件包”yum install libgconf2-4登录“它给出了以下错误。sh-4.2$yum install libgconf2-4加载的插件:ovl、产品id、禁用搜索的repos、拒绝订阅管理器[Errno 13]权限:'/etc/pki/entity host'ovl:执行RPMdb复制时出错:[Errno 13]拒绝权限:'/var/lib/rpm/.dbenv.lock'您需要是root才能执行此命令。作为root用户输入容器时,我在这里遗漏了什么?在
oc-rsh
之后,是否使用
id
cmd检查uid?您应该在oc adm policycmd更改后重新启动pod。并且
libgconf2-4
包在RHEL存储库中不存在,它的名称正确吗?当我执行oc rsh时,它会给出sh-4.2$id uid=1000130000(默认值)gid=0(根)groups=0(根),20011000130000 Iam,并查看如何重新启动pod。你能给我一个命令,在那里我只能重新启动那个特定的RPOD。这将不起作用,因为OpenShift在容器的开头使用了一个随机UID(请参阅):“默认情况下,OpenShift容器平台使用任意分配的用户ID运行容器。这提供了额外的安全性,防止由于容器引擎漏洞而逃离容器的进程,从而在主机节点上实现升级权限。” docker tag docker-registry.default.svc:5000/openshift/jenkins-2-rhel7-custom docker push docker-registry.default.svc:5000/openshift/jenkins-2-rhel7-custom oc edit dc/jenkins ... containers: ... image: "openshift/jenkins-2-rhel7-custom" ...