簡體   English   中英

Docker tomcat通過dockerfile編輯配置文件

[英]Docker tomcat editing configuration files through dockerfile

我已經創建了一個dockerfile和docker-compose,如下所示,它可以在我的容器中創建一個tomcat圖像並編輯tomcat用戶,以便我能夠訪問管理器gui。
下面的四個文件都與我運行docker-compose up命令的文件夾相同。

泊塢窗,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根任務添加到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"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM