Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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
Docker 构建映像时,如何将server.xml复制到停靠的tomcat中_Docker_Tomcat - Fatal编程技术网

Docker 构建映像时,如何将server.xml复制到停靠的tomcat中

Docker 构建映像时,如何将server.xml复制到停靠的tomcat中,docker,tomcat,Docker,Tomcat,我想用自定义的server.xml运行tomcat 我将访问日志前缀修改为access\u log,而不是localhost\u access\u 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

我将访问日志前缀修改为
access\u log
,而不是
localhost\u access\u 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文件

docker容器中的tomcat仍然有它的origin 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组件

$ 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" />
$docker run-d——名称poi middle-p 8000:8000 testtomcat
$docker exec-it poi middle cat/usr/local/tomcat/conf/server.xml

这里的问题是
RUN
stage中的图像覆盖了server.xml

使用docker run解决方案:

docker run -d --name poi-middle -v /path/to/server.xml:/usr/local/tomcat/conf/server.xml -p 8000:8000 testtomcat

您确定启动的映像与创建的映像相同吗?docker日志说明了什么吗?您是否看到已使用docker build命令完成了复制?@LinPy感谢您的回复。我更新了我的问题并添加了一些日志。你能解释一下我做错了什么吗?