tomcat - Docker Compose - 使用卷在 tomcat 上运行 java web 应用程序(war 文件)

标签 tomcat docker docker-compose war volumes

我尝试在 docker 上使用 maven 和 tomcat 部署一个 java web 应用程序。我正在使用两个 Dockerfile,一个用于我的 maven 项目,一个用于 tomcat,使用 docker-compose 组合它们,然后我将 .war 文件从 maven 容器复制到 tomcat 容器,但采用我不太喜欢的方式。我确信有一种方法可以处理卷,这就是我的问题。我的文件是这些...

maven 文件

FROM maven:3.5.2-jdk-8

RUN git clone mygitproject

# Create app directory
WORKDIR mics-project

RUN mvn install

tomcat Dockerfile_tc

FROM tomcat:8.0-jre8

# Create app directory
WORKDIR /usr/local/tomcat/bin

CMD ["catalina.sh", "run"]

EXPOSE 8080

docker-compose.yml

version: '3'
services:
    maven:
        container_name: maven-container
        build:
            context: .
            dockerfile: Dockerfile

    tomcat:
        container_name: tomcat-container
        build:
            context: .
            dockerfile: Dockerfile_tc
        ports:
           - "8080:8080"

然后我有一个 .bat 文件,我正在运行一些命令将我的 war 文件复制到 tomcat...

cd C:\Users\Administrator\Project\mics-project

del "mics-project.war" >nul 2>&1

start docker cp maven-container:/mics-project/target/mics-project.war c:/Users/Administrator/Project/mics-project

start docker cp c:/Users/Administrator/Project/mics-project/mics-project.war tomcat-container:/usr/local/tomcat/webapps/

有效!但是我如何在我的 docker-compose.yml 文件中使用卷而不是执行这些命令?

最佳答案

您可以直接在 YAML 文件中使用卷

volumes:
  - Path_on_local_pc:Path_on_container

这个 block 将在 tomcat 下并与构建和端口并行

tomcat:
    container_name: tomcat-container
    build:
        context: .
        dockerfile: Dockerfile_tc
    ports:
       - "8080:8080"
    volumes:
       - Path_on_local_pc:Path_on_container

同样可以添加。

相同的引用 - https://www.linux.com/learn/docker-volumes-and-networks-compose

关于tomcat - Docker Compose - 使用卷在 tomcat 上运行 java web 应用程序(war 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47941168/

相关文章:

docker - 从 docker 主机外部与 kafka docker 容器交互

docker - 从 Docker GitHub 操作将二进制文件添加到 PATH 以供后续工作流程步骤使用

windows - 如何在 Windows 上安装 docker-compose

java - 如何从 java 执行 shell 脚本,它会重启 tomcat 并继续运行

java - intellij idea中设置tomcat的问题

java - 从 Tomcat 5.5 升级到 Tomcat 7

java - 如何将我的 Java 应用程序连接到通过 docker 运行的 Cassandra?

tomcat - 如何验证Struts2中的单选按钮

django - docker 组成,Django : role "_" does not exist

bash - 通过 docker-compose 拉取 ssh-client 容器