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

时间:2017-11-23 19:04:19

标签: docker docker-compose

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

我有一个名为my-project的项目,可以产生战争my-project.war。我创建了一个名为my-project:latest的Docker镜像,其中包含my-project.war目录中的/my-project。这很容易。

现在我想在my-project:latest中组合Docker镜像tomcat:latestdocker-compose.yml(这是Tomcat的官方Docker镜像)。我从这个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容器复制到webapps/容器中的tomcat目录?这可能是在docker-compose中,还是应该从新的Dockerfile开始?

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

1 个答案:

答案 0 :(得分:1)

你不能在docker-compose中这样做。但是,您可以在名为MultiStage Build

的泊坞窗中使用一个非常好的功能

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

FROM my-project:latest as project

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

使用docker build -t app .构建此图像后,您将拥有一个tomcat图像,其中包含您在`/ webapps'中的战争。

在docker-compose中使用此图片:

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