Docker-compose:合并/合并两个容器

我正在尝试为我的项目创build一个docker环境。 让我解释。

我有一个叫做my-project ,它产生了一个my-project.war的战争。 我创build了一个名为my-project:latest Docker的Docker镜像,它包含/my-project目录中的my-project.war 。 那很简单。

现在我想在Docker docker-compose.yml中将Docker镜像my-project:latesttomcat:latest (这是Tomcat的官方Docker镜像)结合docker-compose.yml 。 我从这个docker-compose.yml

 version: "3" services: my-project: image: my-project:latest tomcat: image: tomcat:latest ports: - 8080:8080 

但是,我现在怎么能把文件/my-project/my-project.warmy-project容器复制到tomcat容器中的webapps/目录? 这是可能的docker组成,或者我应该从一个新的Dockerfile开始?

换句话说,我有这两个容器结合的麻烦。

在docker-compose中你不能这么做。 然而,您可以在名为MultiStage Build的 Docker中使用非常好的function

基本上,创build一个新的Dockerfile将图像合并为一个:

 FROM my-project:latest as project FROM tomcat:latest COPY --from=project /my-project/my-project.war /webapps 

一旦你使用docker build -t app .来构build这个图像docker build -t app . 你将会拥有一个tomcat镜像,它包含了你在`/ webapps'上的战争。

在docker-compose中使用这个图像:

 version: "3" services: application: image: app ports: - 8080:8080