【问题标题】:tomcat docker chmod not working correctly when deploying via Kubernetes通过 Kubernetes 部署时,tomcat docker chmod 无法正常工作
【发布时间】:2021-07-19 19:42:42
【问题描述】:

我正在尝试通过 Kubernetes 部署一个 docker 容器。在我的 DockerFile 中,我指定了这个(神经:

FROM docker/psh-base-centos-tomcat:7.7.1908.1
RUN groupadd -r mygroup && useradd --no-log-init -r -g mygroup mygroup
USER mygroup:mygroup
WORKDIR /home/mygroup
RUN chmod 755 -R /tomcat
RUN chown -R mygroup:mygroup /tomcat
COPY ./target/rest-*.war /tomcat/webapps/rest.war
ENTRYPOINT ["sh", "/tomcat/bin/startup.sh"]

但是,当我通过 AKS 部署此服务时,日志会显示:

sh: /tomcat/bin/catalina.sh: Permission denied

我通过将RUN chmod 755 -R /tomcat/bin/catalina.sh 添加到DockerFile 来手动启用catalina.sh 文件的权限,然后我重新部署它,现在我得到了这个:

touch: cannot touch '/tomcat/logs/catalina.out': Permission denied
/tomcat/bin/catalina.sh: line 434: /tomcat/logs/catalina.out: Permission denied

似乎RUN chmod 755 -R /tomcat 工作不正常,我不知道为什么。为了获得/tomcat 文件夹的权限,我在这里做错了什么吗?

【问题讨论】:

    标签: java docker tomcat kubernetes


    【解决方案1】:

    这是您的 Dockerfile 中的 Linux 用户管理问题,在您已将“neurostar”设置为第三行中的当前用户并且您想要更改默认用户目录访问权限。

    这应该适合你:

    FROM docker/psh-base-centos-tomcat:7.7.1908.1 
    USER root 
    RUN groupadd -r mygroup && useradd --no-log-init -r -g mygroup mygroup 
    RUN chmod 755 -R /tomcat 
    RUN chown -R mygroup:mygroup /tomcat 
    USER mygroup 
    COPY ./target/rest-*.war /tomcat/webapps/rest.war 
    ENTRYPOINT ["sh", "/tomcat/bin/startup.sh"]
    

    【讨论】:

    • 您好,感谢您的回答。你介意改变里面的内容吗?我发现有一些安全问题...请改成这个。只是更改一些敏感信息:FROM docker/psh-base-centos-tomcat:7.7.1908.1 USER root RUN groupadd -r mygroup && useradd --no-log-init -r -g mygroup mygroup RUN chmod 755 -R /tomcat RUN chown -R mygroup:mygroup /tomcat USER mygroup COPY ./target/rest-*.war /tomcat/webapps/rest.war ENTRYPOINT ["sh", "/tomcat/bin/startup.sh"]
    猜你喜欢
    • 1970-01-01
    • 2016-03-06
    • 2016-01-19
    • 2018-03-09
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    相关资源
    最近更新 更多