разрешение отклонено при развертывании образа tomcat docker в контейнере openshift - /usr/local/tomcat/conf/web.xml (разрешение отклонено) - PullRequest
0 голосов
/ 17 февраля 2020

Вот мой Dockerfile контент. Когда я запускаю это локально, он работает хорошо, но когда я пытаюсь развернуть его на openshift container, он выдает permission denied error

    FROM tomcat:8.0.36-jre8
    CMD groupadd -r myuser -g 501
    CMD useradd -d /home/myuser -u 501 -m -s /bin/bash -g myuser myuser
    CMD chown -R myuser:myuser /usr/local/tomcat
    ADD target/ui-1.0.war /usr/local/tomcat/webapps/
    ADD docker-tomcat-conf/server.xml /usr/local/tomcat/conf/
    ADD docker-tomcat-conf/web.xml /usr/local/tomcat/webapps/manager/WEB-INF
    EXPOSE 8080
    CMD chmod +x /usr/local/tomcat/bin/catalina.sh
    ENTRYPOINT ["catalina.sh", "run"]

и ошибку

    Parse error in application web.xml file at file:/usr/local/tomcat/conf/web.xml
java.io.FileNotFoundException: /usr/local/tomcat/conf/web.xml (Permission denied)
    at java.io.FileInputStream.open0(Native Method)

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

На сайте openshift могут быть некоторые политики, которые не позволяют запускать ваш контейнер в привилегированном режиме (например, использовать root учетную запись для запуска процессов)

Вы должны выяснить, под каким пользователем tomcat запускается (см. политики openshift, обратитесь к администратору кластера) и соответствующим образом выровняйте все необходимые разрешения для файлов и папок, используя chown и / или chmod в Dockerfile.

0 голосов
/ 17 февраля 2020
FROM tomcat:8.0.36-jre8
RUN groupadd -r myuser -g 501
RUN useradd -d /home/myuser -u 501 -m -s /bin/bash -g myuser myuser
RUN chown -R myuser:myuser /usr/local/tomcat
ADD target/ui-1.0.war /usr/local/tomcat/webapps/
ADD docker-tomcat-conf/server.xml /usr/local/tomcat/conf/
ADD docker-tomcat-conf/web.xml /usr/local/tomcat/conf/
EXPOSE 8080
RUN chmod +x /usr/local/tomcat/bin/catalina.sh
ENTRYPOINT ["catalina.sh", "run"]

Прежде всего вам необходимо заменить CMD команды на RUN операторы.

Кроме того, не пропустите / при

docker-tomcat-conf/web.xml /usr/local/tomcat/webapps/manager/WEB-INF

Полагаю, это должно быть

docker-tomcat-conf/web.xml /usr/local/tomcat/webapps/manager/WEB-INF/

или

docker-tomcat-conf/web.xml /usr/local/tomcat/webapps/manager/WEB-INF/web.xml

Не должно ли /usr/local/tomcat/webapps/manager/WEB-INF/ быть /usr/local/tomcat/conf/?

...