【发布时间】:2017-06-14 07:39:37
【问题描述】:
我已经创建了一个 dockerfile 和 docker-compose,如下所示,它是为了在我的容器中创建一个 tomcat 的图像并编辑 tomcat 用户,以便我能够访问管理器 gui。
下面的四个文件都在我运行 docker-compose up 命令的同一文件夹中。
docker-compose.yml
version: '2'
services:
tomcat:
build: .
container_name: development
ports:
- 8001:8080
environment:
- spring.profiles.active=development
Dockerfile
FROM tomcat
COPY tomcat-users.xml /usr/local/tomcat/conf/
COPY context.xml /usr/local/tomcat/webapps/manager/META-INF/
CMD ["catalina.sh","run"]
tomcat-users.xml
<?xml version='1.0' encoding='cp1252'?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<user username="manager" password="pass" roles="manager-gui,manager-script"/>
<user username="admin" password="pass" roles="tomcat"/>
</tomcat-users>
context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
<!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />-->
</Context>
当我运行命令 docker-compose up 时,它会完美地生成带有 tomcat 映像的容器,但现有的 tomcat-users.xml 和 context.xml 并没有被覆盖。知道我做错了什么来覆盖这两个文件吗?
【问题讨论】:
-
我无法重现此行为。你试过用
docker-compose build && docker-compose up -d重建镜像吗?还可以考虑docker exec -it <container_id> bash检查文件是否符合预期 -
我也无法重现。使用正确的文件,图像对我来说看起来不错。正如 Jan Trienes 所提到的,我会尝试使用 docker-compose up build 来确保重建图像。
-
感谢您的回复。我弄清楚了问题所在,在下面的答案中进行了解释。
-
如果这个问题是正确的,你应该接受你自己的答案。
标签: tomcat docker containers docker-compose dockerfile