Контейнер Openshift от имени пользователя root - PullRequest
0 голосов
/ 21 ноября 2018

Привет, я работаю над реализацией CICD в openshift 3.9.У меня есть стручок Дженкинса, работающий в открытом режиме.Я запускаю сценарии Селена в jenkins, и ниже это ошибка, которую я получаю как пропущенный пакет

   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)

Для этого я хочу установить libgconf-2-4 в мой контейнер jenkins с помощью следующей команды

yum install libgconf-2-4

Когда я пытаюсь установить ниже, ошибка появляется в моем контейнере 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

Мой вопрос: как войти в jenkins pod от имени пользователя root и установить пакет rpm libgconf-2-4 через yum install libgconf-2-4 вOpenShift

1 Ответ

0 голосов
/ 21 ноября 2018

Кажется, вы должны настроить 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
    
  • Создайте образ, используя Dockerfile.

    docker build .
    
  • Войдите во внутренний реестр OpenShift для отправки изображения.

    docker login -u admin -p  docker-registry.default.svc:5000
    
  • Пометить как OpenShift формат изображения и политику тегов.

    docker tag  docker-registry.default.svc:5000/openshift/jenkins-2-rhel7-custom
    
  • Нажмите image.

    docker push docker-registry.default.svc:5000/openshift/jenkins-2-rhel7-custom
    
  • Отредактируйте deploymentConfig

    oc edit dc/jenkins
    ...
    containers:
       ...
       image: "openshift/jenkins-2-rhel7-custom"
       ...
    

Надеюсь, это поможет вам.: ^)

[0] Общие рекомендации по изображению контейнера

...