Kri*_*e93 5 containers tomcat docker dockerfile docker-compose
我已经创建了一个dockerfile和docker-compose,如下所示,这是在容器内创建tomcat映像并编辑tomcat用户的后缀,以便我能够访问manager gui。
下面的四个文件都与运行docker-compose up命令的位置在同一文件夹中。
docker-compose.yml
version: '2'
services:
tomcat:
build: .
container_name: development
ports:
- 8001:8080
environment:
- spring.profiles.active=development
Run Code Online (Sandbox Code Playgroud)
Docker文件
FROM tomcat
COPY tomcat-users.xml /usr/local/tomcat/conf/
COPY context.xml /usr/local/tomcat/webapps/manager/META-INF/
CMD ["catalina.sh","run"]
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
当我运行命令docker-compose up时,它会完美地生成带有tomcat映像的容器,但是现有的tomcat-users.xml和context.xml不会被覆盖。知道我在覆盖这两个文件时做错了什么吗?
我想到了。问题是我执行构建任务的用户没有足够的权限在这些文件夹中写入内容。我所做的是将USER root任务添加到 Dockerfile,以便它以 root 身份执行所有命令。
我的 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"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7507 次 |
| 最近记录: |