我已经创建了一个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
文档文件
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没有被覆盖。你知道我覆盖这两个文件做错了什么吗?
发布于 2017-06-14 17:42:40
我想通了。问题是我执行构建任务的用户没有足够的权限在这些文件夹中写入内容。我所做的是向Dockerfile添加一个用户根任务,以便它以根用户身份执行所有命令。
我的Dockerfile现在看起来像这样:
FROM tomcat
USER root
COPY tomcat-users.xml /usr/local/tomcat/conf/
COPY context.xml /usr/local/tomcat/webapps/manager/META-INF/
CMD ["catalina.sh","run"]
https://stackoverflow.com/questions/44538447
复制相似问题