Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat没有';不要在docker容器中启动,因为它可以';不要创建日志文件_Tomcat_Docker - Fatal编程技术网

Tomcat没有';不要在docker容器中启动,因为它可以';不要创建日志文件

Tomcat没有';不要在docker容器中启动,因为它可以';不要创建日志文件,tomcat,docker,Tomcat,Docker,我正试图代表Tomcat用户在docker容器中运行Tomcat。 以下是Dockerfile: FROM centos:latest ... RUN groupadd -g743 tomcat RUN useradd -u734 -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat ... RUN chown -R tomcat:tomcat /opt/tomcat/ RUN chmod o+rwx /opt/tomcat ... USER to

我正试图代表Tomcat用户在docker容器中运行Tomcat。 以下是Dockerfile:

FROM centos:latest
...
RUN groupadd -g743 tomcat
RUN useradd -u734 -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
...
RUN chown -R tomcat:tomcat /opt/tomcat/
RUN chmod o+rwx /opt/tomcat
...
USER tomcat
CMD ["/opt/tomcat/bin/catalina.sh", "run"]
我在tomcat用户下以交互模式运行容器:

bash-4.2$ whoami
tomcat
但Tomcat无法启动,原因如下:

21-May-2016 21:55:34.262 SEVERE [Catalina-startStop-1] org.apache.catalina.valves.AccessLogValve.open Failed to open access log file [/opt/tomcat/logs/localhost_access_log.2016-05-21.txt]
java.io.FileNotFoundException: /opt/tomcat/logs/localhost_access_log.2016-05-21.txt (Permission denied) at java.io.FileOutputStream.open0(Native Method)
tomcat用户拥有/opt/tomcat文件夹及其所有子文件夹

bash-4.2$ ls -la /opt/tomcat/
total 120
drwxr-xrwx 16 tomcat tomcat  4096 May 21 21:54 .
drwxr-xr-x  5 root   root    4096 May 21 21:54 ..
-rw-r-----  1 tomcat tomcat 57092 May 11 21:45 LICENSE
-rw-r-----  1 tomcat tomcat  1804 May 11 21:45 NOTICE
-rw-r-----  1 tomcat tomcat  6708 May 11 21:45 RELEASE-NOTES
-rw-r-----  1 tomcat tomcat 15946 May 11 21:45 RUNNING.txt
drwxr-x---  2 tomcat tomcat  4096 May 21 21:54 bin
drwx------  2 tomcat tomcat  4096 May 21 21:54 conf
drwxr-x---  2 tomcat tomcat  4096 May 21 21:54 lib
drwxr-x---  2 tomcat tomcat  4096 May 11 21:44 logs
drwxr-x---  2 tomcat tomcat  4096 May 21 21:54 temp
drwxr-x--- 12 tomcat tomcat  4096 May 21 21:54 webapps
drwxr-x---  2 tomcat tomcat  4096 May 11 21:44 work
但是我不知道为什么禁止用户在他的文件夹中创建文件

bash-4.2$ touch /opt/tomcat/logs/test.txt
touch: cannot touch '/opt/tomcat/logs/test.txt': Permission denied

运行脚本的帐户(我相信您的tomcat用户)是否拥有创建文件的文件夹权限?我猜这是您的问题。一旦进入容器,您是否在执行触摸命令之前切换了用户?删除此:-g743、此:-u734和o+rwx。再试一次,应该有用!随后仅用chmod进行修改和限制,应足够,副作用少。