Мне нравится создавать докер с Centos 7 + Tomcat 8 + OpenJDK 1.8.212 с журналами в папке хоста;Я могу собрать образ докера и запустить из него контейнер с опцией "-v", монтирующей папку хоста.Контейнер работает нормально, но catalina.out и журналы доступа не создаются, и я вижу «В доступе отказано» в журналах докера.Мой файл dockerfile и docker compose выглядит так, как показано ниже.
Часть Dockerfile
COPY ["keystore", "server.xml", "tomcat-users.xml", "$CATALINA_HOME/conf/"]
ADD ["context.xml", "$CATALINA_HOME/webapps/manager/META-INF/"]
# Create tomcat user
RUN groupadd -r tomcat && \
useradd -g tomcat -d ${CATALINA_HOME} -s /sbin/nologin -c "Tomcat user" tomcat && \
chown -R tomcat:tomcat ${CATALINA_HOME} && \
chmod -R 777 ${CATALINA_HOME}/
RUN ["/bin/bash", "-c", "touch /etc/authbind/byport/{80,443} && \
chmod 700 /etc/authbind/byport/{80,443} && \
chown -R tomcat /etc/authbind/byport/{80,443}"]
EXPOSE 80
EXPOSE 433
USER tomcat
CMD authbind --deep /opt/tomcat/bin/catalina.sh run
Docker compose file:
version: "3.7"
services:
tomcat:
hostname: dockertest
container_name: tomcat
image: tomcat:8.5.31
user: tomcat
ports:
- "80:80"
- "443:443"
volumes:
- /opt/tomcat/logs:/opt/tomcat/logs
на моем хосте os / opt / tomcat / logs создается с полным разрешением
chmod -R 777 /opt/tomcat/logs
журналы ошибок докера:
10-Jul-2019 03:50:25.923 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.31
10-Jul-2019 03:50:25.955 SEVERE [Catalina-startStop-1] org.apache.catalina.valves.AccessLogValve.open Failed to open access log file [/opt/tomcat/logs/localhost_access_log.2019-07-10.txt]
java.io.FileNotFoundException: /opt/tomcat/logs/localhost_access_log.2019-07-10.txt (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
.......
......
.....
10-Jul-2019 03:50:27.278 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
10-Jul-2019 03:50:27.280 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1412 ms