gpt4 book ai didi

tomcat - docker tomcat通过dockerfile编辑配置文件

转载 作者:行者123 更新时间:2023-11-28 21:48:15 27 4
gpt4 key购买 nike

我创建了如下所示的 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 没有被覆盖。知道我在覆盖这两个文件时做错了什么吗?

最佳答案

我想通了。问题是与我一起执行构建任务的用户没有足够的权限在这些文件夹中写入内容。我所做的是将 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"]

关于tomcat - docker tomcat通过dockerfile编辑配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44538447/

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