Я бы предложил 2 варианта.
Вариант № 1: Набор в развертывании securityContext.runAsUser: <the UID of the jhipster user>
В общем, это относится к Ограничения контекста безопасности (SCC) .
Чтобы узнать UID пользователя jhipster, получите оболочку внутри контейнера и выполните
id jhipster
Если вы не можете получить оболочку, потому чтоконтейнер не появится из-за того, что приложение Java не запускается, добавьте это в конфигурацию развертывания для контейнера:
command: ["sh"]
stdin: true
Замените sh на bash или любую другую оболочку, которая может быть в образе.Затем вы можете заскочить внутрь контейнера из консоли OpenShift или с помощью oc exec
(см. https://docs.openshift.com/container-platform/3.9/dev_guide/executing_remote_commands.html#basic-usage)
Option # 2: Переопределить сценарий запуска entrypoint.sh
. Например,, добавьте что-то вроде этого в конфигурацию развертывания:
command: ["java"]
args: [
"${JAVA_OPTS}",
"-Djava.security.egd=file:/dev/./urandom",
"-jar",
"/home/jhipster/app.war"
]
Я предполагаю, что app.war
правильно и не app.jar
.
На основании разрешений для файла /home/jhipster/app.war
,однако, эта опция все еще может не работать.