tomcat docker 通过 Kubernetes 部署时 chmod 无法正常工作
tomcat docker chmod not working correctly when deploying via Kubernetes
我正在尝试通过 Kubernetes 部署一个 docker 容器。在我的 DockerFile 中,我指定了这个 (neuro:
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
文件夹的权限有什么不对吗?
这是您的 Dockerfile 中的 Linux 用户管理问题,Dockerfile 在构建过程中逐行解释(逐层)在您的情况下,您已将“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"]
我正在尝试通过 Kubernetes 部署一个 docker 容器。在我的 DockerFile 中,我指定了这个 (neuro:
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
文件夹的权限有什么不对吗?
这是您的 Dockerfile 中的 Linux 用户管理问题,Dockerfile 在构建过程中逐行解释(逐层)在您的情况下,您已将“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"]