我正在尝试为我的项目创建一个docker环境。让我解释一下。
我有一个名为my-project
的项目,可以产生战争my-project.war
。我创建了一个名为my-project:latest
的Docker镜像,其中包含my-project.war
目录中的/my-project
。这很容易。
现在我想在my-project:latest
中组合Docker镜像tomcat:latest
和docker-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.war
从my-project
容器复制到webapps/
容器中的tomcat
目录?这可能是在docker-compose中,还是应该从新的Dockerfile
开始?
换句话说,我遇到麻烦结合这两个容器。
答案 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