Docker 构建映像时,如何将server.xml复制到停靠的tomcat中
我想用自定义的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
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 "%r" %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感谢您的回复。我更新了我的问题并添加了一些日志。你能解释一下我做错了什么吗?