Как мне скопировать server.xml в dockerized tomcat при создании образа - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу запустить tomcat с моим настроенным server.xml

Я изменил префикс журнала доступа как access_log вместо localhost_access_log

Поэтому я написал Dockerfile следующим образом

FROM tomcat:8.5.47-jdk8-openjdk
COPY target/poi-middle-0.1-SNAPSHOT.war /usr/local/tomcat/webapps/
COPY server.xml /user/local/tomcat/conf/

Но файл tomcat server.xml не будет скопирован.

tomcat в док-контейнере все еще имеет свой источник server.xml

Я проверил эту команду.

docker exec -it poi-middle cat /usr/local/tomcat/conf/server.xml

В чем была моя ошибка?

[ОБНОВЛЕНИЕ]

Я успешно строю образ. Вот несколько журналов.

$ docker image build -t testtomcat .
Step 1/3 : FROM tomcat:8.5.47-jdk8-openjdk
8.5.47-jdk8-openjdk: Pulling from library/tomcat
... 
...
Status: Downloaded newer image for tomcat:8.5.47-jdk8-openjdk
 ---> 882487b8be1d
Step 2/3 : COPY target/poi-middle-0.1-SNAPSHOT.war 
/usr/local/tomcat/webapps/
 ---> 705b2a1cc60d
Step 3/3 : COPY server.xml /user/local/tomcat/conf/
 ---> ae70499b65bf
Successfully built ae70499b65bf
Successfully tagged testtomcat:latest

И затем я запустил компонент докера, используя приведенное выше изображение.

$ docker run -d --name poi-middle  -p 8000:8000 testtomcat

$ docker exec -it poi-middle cat /usr/local/tomcat/conf/server.xml
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

1 Ответ

0 голосов
/ 08 ноября 2019

Проблема здесь в том, что изображение на этапе RUN перезаписывает server.xml.

Обход с помощью запуска Docker:

docker run -d --name poi-middle -v /path/to/server.xml:/usr/local/tomcat/conf/server.xml -p 8000:8000 testtomcat
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...