Как создать образ с доступом без полномочий root из Dockerfile для OpenShift? - PullRequest
0 голосов
/ 29 октября 2019

Мне нужно создать образ из файла Docker с разрешениями без полномочий root, потому что у меня нет доступа с правами root на нашей платформе контейнеров OpenShift. Корневой доступ запрещен нашим поставщиком услуг. Когда я пытаюсь вытащить образ из концентратора докеров:

https://s19.directupload.net/images/191029/2vvyrpw2.jpg

Контейнер не запускается, потому что ему нужен root-доступ.

https://s19.directupload.net/images/191029/f42sreci.jpg

Я попытался пересобрать образ и изменил разрешение пути.

Файл Docker:

RUN set -x \ && chmod g+rx /usr/local/HelpSystems/GoAnywhere/jre/bin/java

Теперь я получаю эту ошибку:

/usr/local/HelpSystems/GoAnywhere/tomcat/bin/../../jre/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory

Как создатьизображение с не-root-доступом?

1 Ответ

0 голосов
/ 30 октября 2019

По умолчанию OpenShift не позволяет контейнерам работать как root. Это отличная функция безопасности от Red Hat.

При создании образа Docker с использованием Dockerfile я всегда создаю пользователя non-root:

  1. Создание пользователя без полномочий rootuser (USER 1001) при запуске команды для выполнения какого-либо действия в вашем Dockerfile: RUN a,b,c
  2. В конце моего Dockerfile я установлю USER 1001, поэтому контейнер будет работать как пользователь 1001,т.е. не root.

Если вам нужен контейнер для запуска как root,

  1. Создайте образ на платформе OpenShift
  2. Grant привилегированный доступ к контейнеру. Я бы не рекомендовал это.
...