gpt4 book ai didi

docker - 构建图像时如何将server.xml复制到dockerized tomcat中

转载 作者:行者123 更新时间:2023-11-28 23:10:27 25 4
gpt4 key购买 nike

我想用我自定义的 server.xml 运行 tomcat

我将访问日志前缀修改为 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 文件不会被复制。

docker 容器中的 tomcat 仍然有它的原始 server.xml

我用这个命令 checkout 。

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" />

最佳答案

这里的问题是 RUN 阶段的图像覆盖了 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 - 构建图像时如何将server.xml复制到dockerized tomcat中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58760929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com