使用Docker-compose将文件复制到Docker容器中的tomcat webapps文件夹

时间:2017-10-19 22:30:45

标签: tomcat docker docker-compose dockerfile

我有一个场景,比如我必须将几个配置文件复制到docker容器中存在的tomcat webapps文件夹中。这是我使用的dockerfile

FROM tomcat:7.0.82-jre8
RUN apt-get update && apt-get -y upgrade
WORKDIR /usr/local/tomcat
COPY /app.war /usr/local/tomcat/webapps/app.war
RUN apt-get update && apt-get install -y dos2unix
EXPOSE 8080
COPY tomcat-users.xml /usr/local/tomcat/conf/

一旦我们运行了docker,它实际上会执行以下操作

  1. 它实际上将app.war复制到tomcat webapps文件夹并提取到名为" app"
  2. Docker将尝试启动tomcat服务器。
  3. 我想将配置文件复制到tomcat webapps文件夹中提取的war文件中。这是该物业的位置 启动tomcat服务器之前的tomcat_home / webapps / app / conf / services.properties

    我遇到了在启动tomcat caontainer之前将此属性文件复制到相应文件夹的挑战。

    我不知道如何使用docker-compose来做到这一点。这是否真的可以在docker-compose.yml中使用或使用dockerfile?任何答案都会很明显。

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。您可以在volume:文件的内部服务部分使用docker-compose.yaml,也可以在copy内指定docker file命令。     语法: docker文件中的copy source destination。或
docker-compose中的volumes: <folder/path/in/host> : <folder/path/in/container>

答案 1 :(得分:0)

您无法使用docker-compose.yml复制文件,但可以使用Dockerfile中的COPY命令将文件放入容器中, 也许你感到困惑的是路径/app/conf/services.properties不是一个目录,这就是为什么副本没有发生并且Docker没有抛出错误的原因 另一种方法是你可以安装一个可以使用docker-compose.yml

完成的卷