Tomcat входит в хост-папки Ошибка Docker? - PullRequest
0 голосов
/ 10 июля 2019

Мне нравится создавать докер с 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

1 Ответ

1 голос
/ 10 июля 2019

Если только для теста, попробуйте привилегированный = true

my_service:
  privileged: true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...